一、模板引擎介绍
Thymeleaf是一个XML/HTML模板引擎,可用于Web和非Web环境中。它是Spring框架的一部分,但也可以在非Spring应用程序中使用。
Thymeleaf主要特点是将模板文件中的标记语言转换为标准的HTML/ XML文档。它通过提供一组预定义的标记来达到这种目的。
此外,Thymeleaf还具有可重用性和可扩展性,可以与多个模板引擎集成,并且易于学习和使用。
二、语法基础
与其他模板引擎不同,Thymeleaf的语法基本上是自然表达式,这使得代码易于理解和编辑。下面列出了一些最基本的Thymeleaf表达式:
- 变量表达式:使用${}包裹变量名,在HTML模板中插入变量或者对象属性的值,例如:${person.name}
- 选择变量表达式:使用 #{} 或 把变量的选择和操作代码相结合,例如:${#lists.isEmpty(users)}
- 文字插值表达式:使用th:text或th:utext标签插入纯文本或HTML标签,例如:
- 迭代循环:使用th:each 标记实现集合迭代循环,例如:
<div th:each="item : ${items}"> <h2 th:text="${item.name}"></h2> </div>
三、条件语句
Thymeleaf可以为不同的逻辑情况提供不同的HTML代码。使用Thymeleaf的if、unless、switch语句可使这点成为可能。例如:
<p th:if="${person.age < 18}" th:text="'未成年'"> <div th:switch="${dayOfWeek}"> <p th:case="'MONDAY'">星期一</p> <p th:case="'TUESDAY'">星期二</p> <p th:case="'WEDNESDAY'">星期三</p> <p th:case="'THURSDAY'">星期四</p> <p th:case="'FRIDAY'">星期五</p> <p th:case="'SATURDAY'">星期六</p> <p th:case="'SUNDAY'">星期日</p> <p th:case="*">无效日期</p> </div>
四、模板片段
Thymeleaf支持创建可重用的模板片段,这样可以减少重复代码的编写。例如:
<div th:fragment="date-header"> <h2 th:text="${date}"></h2> </div>
以上代码可以在其他模板中通过以下方式引用:
<div th:replace="date-header :: date-header">