一、简介
Thymeleaf是一个XML / XHTML / HTML5模板引擎,适用于Web和独立环境。
Thymeleaf的主要目标是提供一种优雅而又高度可维护的创建模板的方式。为了实现这个目标,Thymeleaf在自然模板中完全嵌入了HTML,并添加了自定义属性以转换静态模板到模型。
二、基本语法
Thymeleaf使用“属性替换”语法。
<div th:text="${title}">This will be replaced with the value of the title variable</div>
使用这个基本语法,可以通过设置th:*属性来操作元素的属性值:
<p th:text="${book.title}">The Book Title</p>
Thymeleaf的注释语法和HTML相同。
<!-- This is an HTML comment -->
<!-- ! This is a Thymeleaf comment ! -->
三、变量
Thymeleaf应用程序的上下文变量可以在表达式中使用(前缀“$”):${…}和“selection”表达式。
在Thymeleaf中,可以使用th:object设置一个形式上的“当前对象”,使得在之后的处理中可以使用相对属性选择器:
<form th:object="${formBean}">
<input th:field="*{propertyName}" />
</form>
四、迭代
Thymeleaf提供了直接在模板中进行迭代和分页的功能。
以下是一个迭代对象列表并显示每个对象属性的例子:
<ul>
<li th:each="user : ${users}">
<span th:text="${user.name}">User Name</span> : <span th:text="${user.age}">User Age</span>
</li>
</ul>
五、条件语句
Thymeleaf提供了常见条件表达式的相关命令。
以下是一个例子,用于显示一个变量的值是否为空:
<p th:if="${variable != null}">Value :<span th:text="${variable}"></span></p>
六、模板组成
Thymeleaf提供了使用片段应用程序的方便正确实现模板组合的功能。
以下是一个继承模板的例子:
<html>
<head th:fragment="common-header">
<title>The title</title>
</head>
<body>
<header><h1>The Header</h1></header>
<nav>... Navigation panel ...</nav>
<div th:fragment="main">
... Main content ...