Thymeleaf 是一种用于 Web 和非 Web 环境的现代服务器端 Java 模板引擎。它能够处理 HTML、XML、JavaScript、CSS 甚至纯文本。以下是 Thymeleaf 的一些基础语法:
1. 变量表达式
<!-- 显示变量的值 -->
<p th:text="${name}">Default Name</p>
2. 选择变量表达式
<!-- 选择变量的值,如果没有选择到则显示默认值 -->
<p th:text="${name?:'Default Name'}">Default Name</p>
3. 消息表达式
<!-- 显示国际化的消息 -->
<p th:text="#{welcome}">Welcome to our site!</p>
4. 链接 URL 表达式
<!-- 创建链接 -->
<a th:href="@{/hello(name=${name})}">Hello Link</a>
5. 消息参数
<!-- 显示带有参数的消息 -->
<p th:text="#{greeting(hello=${name},number=${age})}">Hi, John!</p>
6. 条件表达式
<!-- 条件判断 -->
<div th:if="${age > 18}">Old Enough</div>
<div th:unless="${age > 18}">Too young</div>
7. 循环
<!-- 迭代列表 -->
<ul>
<li th:each="user : ${users}" th:text="${user.name}">John Doe</li>
</ul>
8. 属性表达式
<!-- 设置属性值 -->
<img th:src="@{/image/{filename}(filename=${user.profilePic})}" alt="Profile Picture">
9. 文本块
<!-- 内联文本块 -->
<div th:utext="'Hello, ' + ${name} + '!'">Hello, John!</div>
10. 选择块
<!-- 根据条件选择不同的块 -->
<div th:switch="${user.role}">
<p th:case="'admin'">Admin User</p>
<p th:case="'guest'">Guest User</p>
<p th:case="*">Regular User</p>
</div>
11. 片段
<!-- 定义片段 -->
<div th:fragment="copy">© 2024</div>
<!-- 插入片段 -->
<div th:insert="footer :: copy">Footer Content</div>
12. 包含
<!-- 包含其他模板 -->
<head th:include="header :: head"></head>
13. 表达式方法
<!-- 调用自定义的表达式方法 -->
<p th:text="${#dates.format(#dates.createNow(),'yyyy-MM-dd')}">Today's Date</p>
14. 服务器端跳转
<!-- 重定向 -->
<div th:action="@{/home}">Home Page</div>
15. 内联表达式
<!-- 在 HTML 属性中使用内联表达式 -->
<input type="text" th:field="*{name}" />
Thymeleaf 的语法非常灵活,可以与 HTML 很好地集成,使得在模板中嵌入动态内容变得非常简单。