Thymeleaf常用语法:使用星号表达式

在处理模板时,一般情况都是使用变量表达式 ${...} 来显示变量,还可以使用选定对象表达式 *{...},它也称为星号表达式。
如果在模板中先选定了对象,则需要使用星号表达式。Thymeleaf的内置对象#object效果等同于星号表达式。

开发环境:IntelliJ IDEA 2019.2.2
Spring Boot版本:2.1.8

新建一个名称为demo的Spring Boot项目。

1、pom.xml
加入Thymeleaf依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

2、src/main/java/com/example/demo/User.java

package com.example.demo;

public class User {
    Integer id;
    String name;

    public User(Integer id, String name) {
        this.id = id;
        this.name = name;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

3、src/main/java/com/example/demo/TestController.java

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.ArrayList;
import java.util.List;

@Controller
public class TestController {
    @RequestMapping("/")
    public String test(Model model){
        List<User> users = queryUsers();
        model.addAttribute("user", users.get(0));
        model.addAttribute("users", users);
        return "test";
    }

    private List<User> queryUsers(){
        List<User> users = new ArrayList<User>();
        users.add(new User(1,"张三"));
        users.add(new User(2,"李四"));
        users.add(new User(3,"王五"));
        return users;
    }
}

4、src/main/resources/templates/test.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        table { border-collapse:collapse;}
        td { border: 1px solid #C1DAD7;}
    </style>
</head>
<body>
    <div>使用变量表达式</div>
    <table>
        <tr>
            <td th:text="${user.id}"></td>
            <td th:text="${user.name}"></td>
        </tr>
    </table>

    <div>使用星号表达式:使用星号</div>
    <table>
        <tr th:object="${user}">
            <td th:text="*{id}"></td>
            <td th:text="*{name}"></td>
        </tr>
    </table>

    <div>使用星号表达式:使用#object对象</div>
    <table>
        <tr th:object="${user}">
            <td th:text="${#object.id}"></td>
            <td th:text="${#object.name}"></td>
        </tr>
    </table>

    <div>在循环体中使用星号表达式</div>
    <table>
        <tr th:each="u : ${users}" th:object="${u}">
            <td th:text="*{id}"></td>
            <td th:text="*{name}"></td>
        </tr>
    </table>

</body>
</html>

浏览器访问:http://localhost:8080
显示如下截图所示:

原文地址:https://www.cnblogs.com/gdjlc/p/11701381.html

时间: 2024-07-29 08:22:24

Thymeleaf常用语法:使用星号表达式的相关文章

Thymeleaf常用语法:表达式语法之运算符

Thymeleaf表达式语法之常量分为字符串常量.数字常量.布尔值常量.空值常量:运算符分为算术运算符.关系运算符.条件运算符.无操作符. 开发环境:IntelliJ IDEA 2019.2.2Spring Boot版本:2.1.8 新建一个名称为demo的Spring Boot项目. 1.pom.xml加入Thymeleaf依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactI

Thymeleaf常用语法:自定义数据转换类

在模板文件中,可以使用“${{...}}”表达式进行数据转换,Thymeleaf会使用配置好的数据转换类,来实现转换.例如一个User对象,简单起见假设有姓名和年龄两个字段,对象的toString()方法拼接所有字段,使用“${user}”会调用对象的 toString()方法得到所有字段,如果在模板中只想得到姓名,可以使用自定义数据转换类实现. 在Sprint Boot中,实现过程:(1)先实现自定义的Formatter类,并根据具体业务实现数据转换逻辑:(2)将自定义的Formatter类注

Thymeleaf常用语法:条件判断 if、switch case

if语句条件判断使用th:if,它会判断表达式是否成立,表达式的结果支持boolean.number.character.String及其他类型.满足下面情况下,if语句成立:(1) 表达式的结果是数字且不是0(2) 表达式的结果是字符串且不是false.off.no.0(3) 表达式的结果是其他数据类型switch case语句(1) 类似Java的switch case语句:th:switch.th:case(2) 使用th:case="*"来表示默认值(3) 如果第一个th:ca

Thymeleaf常用语法:模板注释

Thymeleaf模板注释分为标准HTML/XML注释.解析层注释.原型注释三种. 一.注释说明 1.标准HTML/XML注释 直接通过浏览器打开,不显示,Thymeleaf模板引擎解析也不处理,但查看网页源代码,注释有在里面.语法: <!-- 内容 --> 浏览器界面不显示,查看浏览器网页源码有显示: 2.解析层注释 直接通过浏览器打开,会显示.但Thymeleaf模板引擎解析时会移除注释标签和里面内容.一般开发人员使用,减少对原型页面的破坏.语法: <!--/*--> 内容 &

Thymeleaf常用语法:模板片断

系统中的很多页面有很多公共内容,例如菜单.页脚等,这些公共内容可以提取放在一个称为“模板片断”的公共页面里面,其它页面可以引用这个 “模板片断”内容. 一.模板片断的定义 可以是html标签,也可以使用th:fragment属性定义片断. 二.引用片断 1.使用th:insert属性插入片断,除此之外,还可以使用th:replace和th:include插入.语法:(1) th:insert="~{模板名称}"插入模板的整个内容 (2) th:insert="~{模板名称::

Thymeleaf常用语法:HTML属性设置

使用Thymeleaf的属性来设置HTML属性.(1)使用th:attr属性可以修改原来HTML节点的属性:(2)th:attr属性可以同时设置多个属性:(3)每一个HTML属性都有对应的Thymeleaf属性,如th:attr="value='值'"可换为th:value="值"(4)HTML的type为checkbox.readonly.required.disabled的,Thymeleaf属性可写为th:checked="true/false&qu

Thymeleaf常用语法:数据延迟加载

在处理模板时,可以由模板逻辑决定是否加载数据,以提高性能.在Spring Boot控制器中设置数据时,使用LazyContextVariable可以实现这功能. 开发环境:IntelliJ IDEA 2019.2.2Spring Boot版本:2.1.8 新建一个名称为demo的Spring Boot项目. 1.pom.xml加入Thymeleaf依赖 <dependency> <groupId>org.springframework.boot</groupId> &l

Thymeleaf 常用th标签基础整理

(一)Thymeleaf 是个什么? 简单说, Thymeleaf 是一个跟 Velocity.FreeMarker 类似的模板引擎,它可以完全替代 JSP .相较与其他的模板引擎,它有如下三个极吸引人的特点: 1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果.这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式.浏览器解释 html 时会忽略未定义的标签

oracle入门(6)——PL/SQL常用语法

[本文介绍] 本文不是”语法大全“,只是记录下作项目里自己常用的一些语法.方便查询. [语法] [输出]   (1)输出语法 DBMS_OUTPUT.PUT_LINE( ) [定义]   (1)定义变量: ...... as 变量名 类型(长度) begin ...... 例如: (2)定义变量 ,类型 依赖其他变量的类型 例如: 这样,改了name的类型,returnValue类型也跟着改变. (3)自定义类型(类似C语言的结构体)每次只能拿一条数据,不然会的报错. 例如: (4)以“表”做为