变量表达式
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
${attr} -> 用法和jstl一致,获取model中携带的参数
选择表达式
*{attr} -> 方式一,获取model中携带的参数
<div th:object="${user}"> -> 方式二,获取变量中的属性
<input type="text" th:field="*{username}"/><br/>
<input type="text" th:field="*{password}"/><br/>
</div>
地址表达式
@{/static/image/image.jpg} -> localhost:8080/static/image/image.jpg
资源表达式
在资源根目录下配置国际化文件
messages.properties -> attr = Default
messages_en_US.properties -> attr = English
messages_zh_CN.properties -> attr = Chinese
<span th:text="#{attr}">attr</span> -> 示例
基本表达式对象
#ctx -> context
#locale:contextScope
#vars:contextVar
#request -> HttpServletRequest
#session -> HttpSession
#servlet -> ContextServletContext
#response -> HttpServletResponse
工具表达式对象
#dates -> java.util.Date
<span th:text="${#dates.format(date,'yyyy-MM-dd')}">2019-01-01</span>
#calendars -> java.util.Calendar
#numbers 数字格式化对象,参数1:格式化对象,参数2:保留整数位,参数3:保留小数位
<span th:text="${#numbers.formatDecimal(200,1,2)}">180.00</span>
#strings -> java.lang.String
#objects -> object
#bools -> boolean
#arrays -> array
#lists -> list
#sets -> set
#maps -> map
#aggregates 创建数组或集合的聚合的工具方法
#messages 变量表达式内部获取外化消息
#ids 处理id重复出现
片段表达式
<div th:insert="~{header :: header}"></div> -> 页面引入页眉
th:each 循环迭代
<ul>
<li -> integerStat意为状态,命名规则是*Stat,*意为循环变量integer
th:each="integer,integerStat:${integers}">
<span th:text="${integer}"/><br/>
</li>
</ul>
th:text 普通文本
<span th:text="${span}">span</span>
th:utext 富文本
<span th:utext="${utext}"></span>
th:value 属性值
<input th:value="${value}"/>
th:href 超链接
<a href="/async" th:href="@{thymeleaf}">thymeleaf</a>
th:action 表单请求地址,th:method 表单请求方式
<form th:action="@{thymeleaf}" th:method="post">
<input type="text" />
<button type="submit" />
</form>
th:object 数据模型
<div th:object="${user}">
<input type="text" th:field="*{username}"/>
<input type="text" th:field="*{password}"/>
</div>
th:if 条件成立显示标签
<span th:if="${200 gt 100}">compare</span>
if-then -> true?true:false;
if-then-else -> true?(true?true:false):false
th:unless 条件不成立显示标签
<span th:unless="${200 lt 100}">compare</span>
th:switch 显示条件成立的分支标签
<td th:switch="1">
<input th:case="2" value="2"/>
<input th:case="3" value="3"/>
<input th:case="*" value="1"/> -> * as default
</td>
th:src 超链接地址
<img th:src="@{/static/image/image.jpg}" />
th:selected 下拉选择框
<select>
<option>全部</option>
<option th:selected="true">选中</option> -> 条件成立选中
<option th:selected="false">不选中</option> -> 条件不成立不选中
</select>
th:attr 标签属性
<input th:attr="value=value,name=name"/> -> 设置属性
<input th:attrprepend="id=id"> -> 前追加属性
<input th:attrappend="class=class"> -> 后追加属性
th:checked 单选框或复选框选中
<input type="checkbox" th:checked="${true}"/>
th:id 标签唯一标识
<input th:id="id"/>
th:class 标签类名
<input th:class="class"/> -> 添加类名
<input th:classappend="append"/> -> 追加类名
th:with 局部变量
<div th:with="attr=${span}"> -> 定义局部变量
<span th:text="${attr}"></span> -> 获取局部变量
</div>
th:style 标签样式
<img th:style="'width:50px;height:50px;'"/>
th:remove 标签移除
body:移除ul包含的标签|all:移除ul及其包含的标签|all-but-first:只保留第一个li
none:无效果|tag:删除当前标签(ul)
<ul th:remove="tag">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
th:block 控制标签显示
<th:block th:if="true">
<span>block</span> -> 条件成立显示,不成立不显示
</th:block>
th:insert 插入页面
<div th:insert="~{header :: header}"></div> -> 第一个参数是页面名
th:include 包含页面
<div th:include="footer :: footer"></div> -> 第二个参数是页面片段名
th:replace 替代页面
<div th:replace="center :: center"></div> -> 同上
th:inline 内联
<script type="text/javascript" th:inline="javascript">
var span = [[${span}]]; -> JS内联,获取后台数据
</script>
<span th:inline="text">[[${span}]]</span> -> 文本内联,获取后台数据
<span th:inline="none">[[${span}]]</span> -> 取消内联,标签体显示原文本
th:fragment 页面片段
<div th:fragment="header">
thymeleaf header ! -> 作为页面片段被引入到主页面
</div>
|...| 字符串合并
<span th:text="${'*'+span}">pin</span> -> 方式一
<span th:text="|abc ${span}|">jie</span> -> 方式二