目录
Thymeleaf内置了许多属性,包括超链接使用的href属性、表单提交使用的action属性、遍历集合使用的each属性等,方便我们对模板进行修改,熟记这些常用属性,可以帮我们解决开发中大多数问题。
一、th:action
定义后台控制器的路径,类似<form>标签的action属性,比如:
<form id="login" th:action="@{|/login/${}|}">......</form>
二、th:each
这个属性非常常用,比如从后台传来一个对象集合那么就可以使用此属性遍历输出,它与JSTL中的<c: forEach>类似,此属性既可以循环遍历集合,也可以循环遍历数组及Map,比如:
1、List遍历
<tr th:each="user, interStat : ${userlist}">
<td th:text="${interStat.index}"></td>
<td th:text="${user.id}"></td>
<td th:text="${user.nick}"></td>
<td th:text="${user.phone}"></td>
<td th:text="${user.email}"></td>
<td th:text="${user.address}"></td>
</tr>
2、详解
以上代码解读如下:
th:each="user, iterStat : ${userlist}" 中的 ${userList} 是后台传来的Key,
user是${userList} 中的一个数据,
iterStat 是 ${userList} 循环体的信息,
其中user及iterStat自己可以随便写;
interStat是循环体的信息,通过该变量可以获取如下信息:
index、size、count、even、odd、first、last,其含义如下:
index: 当前迭代对象的index(从0开始计算)
count: 当前迭代对象的个数(从1开始计算)
size: 被迭代对象的大小
current: 当前迭代变量
even/odd: 布尔值,当前循环是否是偶数/奇数(从0开始计算)
first: 布尔值,当前循环是否是第一个
last: 布尔值,当前循环是否是最后一个
注意
循环体信息interStat也可以不定义,则默认采用迭代变量加上Stat后缀,即userStat
3、Map遍历
<div th:each="myMapVal : ${myMap}">
<span th:text="${myMapVal.key}"></span>
<span th:text="${myMapVal.value}"></span>
<br/>
</div>
${myMapVal.key} 是获取map中的key,${myMapVal.value} 是获取map中的value;
4、数组遍历
<div th:each="myArrayVal : ${myArray}">
<div th:text="${myArrayVal}"></div>
</div>
三、th:href
定义超链接,如
<a th:href="@{|/login/${user.id}|}">登录</a>
四、th:id
定义id
<span th:id="${user.id}">myId</span>
五、th:if
用作条件判断
<span th:if="${user.sex} == 1" >
男:<input type="radio" th:value="男" />
</span>
<span th:if="${user.sex} == 2">
女:<input type="radio" th:value="女" />
</span>
六、th:unless
th:unless是th:if的一个相反操作,上面的例子可以改写为
<span th:unless="${user.sex} == 1" >
女:<input type="radio" th:value="女" />
</span>
<span th:unless="${user.sex} == 2">
男:<input type="radio" th:value="男" />
</span>
七、th:switch
常常用th:case使用,判断语句
<div th:switch="${user.sex}">
<p th:case="1">男</p>
<p th:case="2">女</p>
<p th:case="*">外星人</p>
</div>
八、th:object
用于变量选择绑定对象
<div th:object="${user}">
<div th:text="*{id}">pojo类</div>
<div th:text="*{name}">pojo类</div>
</div>
九、th:src
用于外部资源引入,比如<script>标签的src属性,<img>标签的src属性,常与@{}表达式结合使用
<img th:src="@{|/static/image/logo.png/${}|}"/>
十、th:text
用于文本的显示
<input type="text" id="realName" name="reaName" th:text="${realName}">
十一、th:value
类似html标签中的value属性,能对某元素的value属性进行赋值
<input type="hidden" id="userId" name="userId" th:value="${userId}">