SpringBoot 基础之 Thymeleaf 模板引擎

pom.xml 中导入依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

application.properties 中关闭缓存

spring.thymeleaf.cache = false

关闭 Thymeleaf 的缓存,不然在开发过程中修改⻚面不会立刻生效需要重启,生产可配置为 true。


另外,在 HTML 页面上如果要使用 Thymeleaf 模板,需要在页面标签中引入如下代码:

<html xmlns:th="http://www.thymeleaf.org">

下面重点介绍几个 Thymeleaf 模板引擎的常用方法:

字符串拼接(两种写法皆可):
<span th:text="'Welcome to our application, ' + ${userName} + '!'"></span>
<span th:text="|Welcome to our application, ${userName}!|"></span>
List 遍历:
<form action="" th:each="user : ${list}" >
	用户编号:<input name="id" th:value="${user.id}"/><br>
    用户姓名:<input type="text" name="password" th:value="${user.name}"/><br> 
    登录密码:<input type="text" name="username" th:value="${user.getPass()}"/>
</form>
超链接 URL:
<a th:href="@{http://https://github.com">link1</a>
<a th:href="@{https://github.com/{type}(type=${type})}">link1</a>
<a th:href="@{https://github.com/{type}/wiki(type=${type})}">link1</a>
三目运算符:
<input th:value="${age gt 30 ? '中年':'青年'}"/>

表示如果 age 大于30 则显示中年,否则显示青年。

gt:great than(大于)
ge:great equal(大于等于)
eq:equal(等于)
lt:less than(小于)
le:less equal(小于等于)
ne:not equal(不等于)
内嵌变量 dates:
<!--格式化时间-->
<p th:text="${#dates.format(date, 'yyyy-MM-dd HH:mm:ss')}">abc</p>
<!--创建当前时间 精确到天-->
<p th:text="${#dates.createToday()}">abc</p>
<!--创建当前时间 精确到秒-->
<p th:text="${#dates.createNow()}">abc</p>
内嵌变量 strings:
<!--判断是否为空-->
<p th:text="${#strings.isEmpty(userName)}">userName</p>
<!--判断 list 是否为空-->
<p th:text="${#strings.listIsEmpty(users)}">userName</p>
<!--输出字符串长度-->
<p th:text="${#strings.length(userName)}">userName</p>
<!--拼接字符串-->
<p th:text="${#strings.concat(userName,userName,userName)}"></p>
<!--创建自定长度的字符串-->
<p th:text="${#strings.randomAlphanumeric(count)}">userName</p>