目录
属性汇总
th:text 与 th:utext
th:attr 设置任意属性值
设置指定属性值
th:alt-title 和 th:lang-xmllang
固定值布尔属性
默认属性处理器
编号 | 属性 | 描述 | 示例 |
1 | th:text | 计算其值表达式并将结果设置为标签的标签体 | 中国 ,值为 null 为空时,整个标签不显示任何内容。 |
2 | th:utext | th:text 会对结果中的特殊字符转义,th:utext 不会转义 | 中国 ,值为 null 为空时,整个标签不显示任何内容。 |
3 | th:attr | 为标签中的任意属性设置,可以一次设置多个属性 | 前往百度 |
4 | th:* | 为 html 指定的属性设值,一次设置一个 | 前往百度 |
5 | th:alt-title | 同时为 alt 与 title 属性赋值 | th:A-B |
6 | th:lang-xmllang | 同时为 lang 、xmllang 属性赋值 | |
7 | th:fragment | 定义模板片段 | |
8 | th:insert | 将被引用的模板片段插⼊到自己的标签体中 | |
9 | th:replace | 将被引用的模板片段替换掉自己 | |
10 | th:include | 类似于 th:insert,⽽不是插⼊⽚段,它只插⼊此⽚段的内容 | |
11 | th:remove | 删除模板中的某些代码片段 | |
12 | th:each | 迭代数据,如 数组、List、Map 等 | |
13 | th:if | 条件为 true 时,显示模板⽚段,否则不显示 | 已婚1 |
14 | th:unless |
条件为 false 时,显示模板⽚段,否则不显示 | 已婚2 |
15 | th:switch |
与 Java 中的 switch 语句等效,有条件地显示匹配的内容 | |
16 | th:case | 配合 th:switch 使用 | 管理员 操作员 未知用户 |
17 | th:with | 定义局部变量 | |
18 | th:inline |
禁用内联表达式,内联js,内联css |
1) th:text 属性用于计算其值表达式并将结果设置为标签的标签体。举例如下:
--------------------------控制器------------------------
@GetMapping("userHome")
public String userHome(Model model) {
logger.info("用户即将进入 hoem.html 页面.");
/**浏览器访问后,返回数据给页面*/
model.addAttribute("userName", "华安");
return "user/home";
}
-------------------------home.html-----------------------
China
China
中国
页面效果如下:
2)th:utext
th:text 属性对表达式中结果中的特殊字符默认会进行转义处理,如 “China,USA,UK” 会被转义成 “<b>China</b>,USA,UK”
th:utext 属性 (unescaped text) 则不会对结果进行转义
-------------------控制器------------------
@GetMapping("userHome")
public String userHome(Model model) {
logger.info("用户即将进入 hoem.html 页面.");
/**浏览器访问后,返回数据给页面*/
model.addAttribute("china", "Chian,USA,UK");
return "user/home";
}
-------------------home.html---------------
Welcome to our <b>fantastic</b> grocery store!
默认转义
不会转义
效果如下:
th:attr 通过⼀个表达式即可将值赋给任意的多个属性,th:attr 以逗号分隔的形式来设置多个属性值。
百度
前往百度
用户首页
归海一刀
项目中通常使⽤ th:* 来特定的属性值,例如设置 value 属性,使⽤ th:value,设置 name 属性,则是 th:name 等等。
百度
前往百度
用户首页
归海一刀
效果与上面 th:attr 完全一样。
HTML5 所有的属性,都可以使用 th:* 的形式进行设置值。
th:alt-title 表示同时为 alt 属性与 title 属性赋值相同的值;th:lang-xmllang 表示同时为 lang 属性 xmllang 属性赋值相同的值。
注意:因为 alt 与 title 表达的意义基本相同,lang 与 xmllang 作用基本相同,所以 Thymeleaf 才为它们创建了这两个属性,对于其它的属性,则不能使用 "-" 进行操作。如 不能使用 th:href-title 来为 href 属性与 title 属性同时赋值相同的值。
等价于
等价于
th:A-B
错误示范
HTML 具有布尔属性的概念,这个布尔属性没有值,并且⼀旦这个布尔属性存在则意味着属性值为 “true”。 但是在 XHTML中,这些属性只取⼀个值,这个属性值就是它本身。
例如,checked 属性:
Thymeleaf 标准⽅⾔允许通过计算条件表达式的结果来设置这些属性的值,如果条件表达式结果为 true,则该属性将被设置为其固定值,如果结果为 false,则不会设置该属性。
是否已婚1?
是否已婚2?
是否已婚3?
是否本科?
是否应届生?
Thymeleaf 标准⽅⾔还⽀持以下固定值布尔属性:
th:async | th:autofocus | th:autoplay |
th:checked | th:controls | th:declare |
th:default | th:defer | th:disabled |
th:formnovalidate | th:hidden | th:ismap |
th:loop | th:multiple | th:novalidate |
th:nowrap | th:open | th:pubdate |
th:readonly | th:required | th:reversed |
th:scoped | th:seamless | th:selected |
Thymeleaf 提供了⼀个默认属性处理器,允许设置任何属性的值,即使在标准⽅⾔中没有为其定义特定的 th:* 处理器,即使属性不是 html 的标准属性,如:
th:abc="9527"
th:abc123="华安"