一个Java小白的学习之路 个人博客 youngljx.top
Thymeleaf 的基础使用
Thymeleaf的使用是由两部分组成的:标签 + 表达式,标签是Thymeleaf的语法结构,而表达式就是语法里的内容实现。
通过标签 + 表达式,让数据和模板结合,最终转换成html代码,返回给用户。
首先引入提示
在html页面中引入thymeleaf命名空间,此时在html模板文件中动态的属性使用th:命名空间修饰 ,这样才可以在其他标签里面使用th:*这样的语法.这是下面语法的前提:
<html lang="en" xmlns:th="http://www.thymeleaf.org">
thymeleaf 基本表达式
${...} 变量表达式,用于访问容器上下文环境中的变量,功能同jstl中${}
*{...} 选择表达式,一般是th:object之后,直接取Object中的属性。当没有选取对象时,其功能等同于${...}
#{...} 消息表达式 通常与th:text属性一起使用,指明声明了th:text的标签的文本是#{}中的key所对应的value,而标签内的文本将不会显示
消息表达式通常用于显示页面静态文本,将静态文本维护在properties文件中也方面维护,做国际化等
@{...} 超链接url的表达式 例如:
<script th:src="@{/resources/js/jquery/jquery.json-2.4.min.js}"
#maps 工具对象表达式。常用于日期、集合、数组对象的访问。这些工具对象就像是java对象,可以访问对应java对象的方法来进行各种操作
其他工具对象表达式 #dates #calendars #numbers #strings #objects #bools #arrays #lists #sets
Thymeleaf 常用属性
th:action 定义后台控制器路径,类似<form>标签的action属性 例如:
<form id="login-form" th:action="@{/login}">...</form>
th:each 对象遍历,功能类似jstl中的<c:forEach>标签
th:object 用于表单数据对象绑定,将表单绑定到后台controller的一个JavaBean参数。常与th:field一起使用进行表单数据绑定
th:value 用于标签赋值,类似<option>标签的value属性。
th:field 常用于表单字段绑定。通常与th:object一起使用。 属性绑定、集合绑定。
th:href 定义超链接,类似<a>标签的href 属性。value形式为@{/logout} 例如:
<a th:href="@{/logout}" class="signOut"></a>
th:src 用于外部资源引入,类似于<script>标签的src属性,常与@{}一起使用
th:id div id声明,类似html标签中的id属性。
th:text 文本显示
th:if 条件判断。例如:
<div th:if="${rowStat.index} == 0">... do something ...</div>
th:fragment 声明定义该属性的div为模板片段,常用与头文件、页尾文件的引入。常与th:include,th:replace一起使用。
th:include
th:replace
例如:
声明模板片段 /WEBINF/templates/footer. html
<div th: fragment=" copy" >
© 2011 The Good Thymes Virtual Grocery
</div>
引入模板片段
<div th: include=" /templates/footer : : copy" ></div>
<div th: replace=" /templates/footer : : copy" ></div>
标签和表达式使用实例:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"