在开头要引入如下字段,声明名称空间
<html xmlns:th="http://www.thymeleaf.org">
标准表达式语法
- $ 开头表示变量
- @开头表示连接 不管是静态资源的引用,form表单的请求,凡是链接都可以用@{...} 。这样可以动态获取项目路径,即便项目名变了,依然可以正常访问
-
<td ><a th:href="@{/edit.do(fid=${fruit.fid})}">苹果1</a></td>
- #开头表示内置方法
if语句示例:
<tr th:if="${#lists.isEmpty(session.fruitlist)}">
双引号内部以$开头表示是一个变量值的判断,#lists.isEmpty则是thymeleaf的一个内置判空方法,session,fruitlist则是当前会话存储的一个fruitlist属性.
else语句示例:
<tr th:unless="${#lists.isEmpty(session.fruitlist)}" th:each="fruit : ${session.fruitlist}" >
以th:unless表示else语句,th:each表示循环语句,fruit表示循环的变量名,使用示例如下:
<td th:text="${fruit.price}">5</td>
th:each 的用法需要格外注意,打个比方:如果你要循环一个div中的p标签,则th:each属性必须放在p标签上。若你将th:each放在div上,则循环的将是整个div。
th属性
设置文本内容th:text ,设置input的值th:value ,循环输出th:each ,条件判断th:if,插入代码块th:insert,定义代码块th:fragment,声明变量th:object
<!--设置文本-->
<td th:text="${fruit.price}">5</td>
<!--设置input的值-->
<td><input type = "text" name = "fname" th:value="*{fname}"></td>
<!--设置object的值-->
<form th:action="@{/update.do}" method="post" th:object="${fruit}">
设置了object值之后,对于对象的属性值可以直接调用,调用形式如下:
<!--先声明object-->
<form th:action="@{/update.do}" method="post" th:object="${fruit}">
<input type="hidden" name="fid" th:value = "*{fid}"/>
其等价于
<input type="hidden" name="fid" th:value = "${fruit.fid}"/>
||会自动拼接字符串
<!--使用||前:-->
<th:onclick="'delFruit('+${fruit.fid}+')'"/>
<!--使用之后-->
<th:onclick="|delFruit(${fruit.fid})|"/>