3.4 属性值的设置
3.4.1 使用th:attr来设置属性的值
设置多个属性值:
会的多的不一定会的精,th:attr 虽然可以设置很多属性值,但其设置属性值非常不规范不美观,不建议使用。(这点很像全栈工程师的尴尬地位,你虽然都能做,但很多公司招聘的时候还是前后端分开来招)。可以使用其他th:*
属性,其任务是设置特定的标记属性(而不仅仅是任何属性th:attr
)。
3.4.2 一次性设置值相同的属性
有两个叫比较特殊的属性th:alt-title
和th:lang-xmllang
可用于同时设置两个属性相同的值。特别:
th:alt-title
将设置alt
和title
。th:lang-xmllang
将设置lang
和xml:lang
。
eg.
equals.
3.4.3 Appending and prepending(附加和前缀)
th:attrappend th:attrprepend (append (suffix) or prepend (prefix) the result of their evaluation to the existing attribute values)
th:attrappend属性值前缀,例如一个标签的类名为a,想要变为“a b”,即增加一个类样式,可以使用此属性.
还有:th:classappend th:styleappend (used for adding a CSS class or a fragment of style to an element without overwriting the existing ones)
3.4.4 布尔值属性(属性值为布尔值)
以th:checked为例,选中为true,未选中为false,thymeleaf解析时不会设置th:checked属性。
选中
3.5 th:each
循环/迭代
e.g.
NAME | PRICE | IN STOCK |
---|---|---|
Onions | 2.41 | yes |
Note: 1.prod局部变量只在被其包含的<tr>标签和子标签中可用; 2.迭代的对象可以是 java.util.List,java.util.Map,数组等;
状态变量
Onions 2.41 yes
iterStat称作状态变量,属性有:
- index: 当前迭代对象的index(从0开始计算)
- count: 当前迭代对象的index(从1开始计算)
- size: 被迭代对象的大小 current:当前迭代变量
- even/odd: 布尔值,当前循环是否是偶数/奇数(从0开始计算)
- first: 布尔值,当前循环是否是第一个
- last: 布尔值,当前循环是否是最后一个
- List循环:
用户名 邮箱 管理员 状态变量:index 状态变量:count 状态变量:size 状态变量:current.userName 状态变量:even 状态变量:odd 状态变量:first 状态变量:last Onions test@test.com.cn yes 状态变量:index 状态变量:count 状态变量:size 状态变量:current 状态变量:even**** 状态变量:odd 状态变量:first 状态变量:last - Map循环:
- 数组循环:
3.6 条件判断
3.6.1 th:if th:unless
①th:if使用
th:if 支持下列规则判断:
<1>值不为null:
<1.1>布尔类型且为true;
<1.2>非0数字;
<1.3>非0字符;
<1.4>非“false”, “off” or “no”字符串;
<1.5>判断值不为布尔值,数字,字符,字符串
结果为true
<2>值为null,结果为false
② th:unless
3.6.2 th:switch th:case
User is an administrator
User is a manager
① 一旦有一个th:case对应结果为true,其他均为false;
② 默认值语法为: th:case=”*”