参考:https://www.cnblogs.com/msi-chen/p/10974009.html#_label0
Themeleaf不需要服务端的支持,就能够以html的方式打开,这样就能够方便前端人员独立设计与调试,jsp就不行了,不启动服务器jsp都没法运行出来结果。
<h1>
你好:<span th:text="{user.name}">请跟我来</span>
</h1>
- 变量_动静结合
在thymeleaf中,所有的指令都是以th:开头
- 向下兼容
- escape
例如:
如果想不进行格式化:
- 变量_ognl表达式的语法糖
当属性名也是个变量的时候,使用${user.name}自然是不行的
改用类似js的语法:${user['name']}
- 变量_自定义变量
如:
<h2 th:object="${user}"> //注意这里,使用th:object="${user}"获取倒了user的值,并且保存
<p>Name: <span th:text="*{name}">Jack</span>.</p> //使用*{属性名}的方式,获取属性
<p>Age: <span th:text="*{age}">21</span>.</p>
<p>friend: <span th:text="*{friend.name}">Rose</span>.</p>
</h2>
<p th:text = "*{name.split(' ').[0]}">Jack</p>
//表示使用空格分隔的结果的第一段内容?
能自行获取一些特殊的对象
<p th:text="$m{#dates.format(today,'yyy-MM-dd')}" >2018-04-25</p>
//就会形成这样的格式
- 方法_字面量
基本类型如:
<div th:if="true">
你填的是true
</div>
- 方法_拼接
<span th:text= "|欢迎你:${user.name}|"></span>
等效于
"'欢迎你:'+ ${user.name}"
- 算术运算
<span th:text="${user.age}"></span> //21
<span th:text="${user.age}%2 == 0"></span> //false
- 比较运算
注意 == and != 不仅可以比较数值,类似于equals的功能
- 条件运算
三元运算 a? x:y
<span th:text = "${user.sex}? '男':'女'"></span>
默认值 a ?: x (x为默认值) 注意 ?: 无空格
<span th:text="${user.name} ?: '二狗'"></span>
<tr th:each="user : ${users}">
<td th:text = "${user.name}"> renshujia</td>
<td th:text = "${user.age}"> 22</td>
</tr>
在迭代的同时,我们可以获取迭代的状态对象
<tr th:each="user,stat : ${users}">
<td th:text="${user.name}">Onions</td>
<td th:text="${user.age}">2.41</td>
</tr>
<span th:if="${user.age} > 24">老油条</span>
- 分支控制switch
使用th:switch & th:case
<div th:switch="${user.role}">
<p th:case="'admin'">用户是管理员</p>
<p th:case="'manager'">用户是经理</p>
<p th:case="*">用户是别的玩意</p>
</div>
<script th:inline="javascript">
const user = /*[[${user}]]*/ {};
const age = /*[[${user.age}]]*/ 20;
console.log(user);
console.log(age)
</script>
const user = /*[[Thymeleaf表达式]]*/ "静态环境下的默认值";