spring boot 集成 thymeleaf 核心在于零配置起步、html 原生可预览、数据直连 model;只需引入 spring-boot-starter-web 和 spring-boot-starter-thymeleaf 依赖,模板放 resources/templates/ 下,controller 返回模板名,配合 th:text、th:each 等属性即可完成服务端渲染。

Spring Boot 集成 Thymeleaf 开发服务端渲染页面,核心在于“零配置起步 + HTML 原生可预览 + 数据直连 Model”,整个过程不依赖额外 XML 或复杂配置,5 分钟就能跑通一个带数据的页面。
添加依赖:两行代码搞定基础集成
只需在 pom.xml 中加入两个 Starter:
-
spring-boot-starter-web(提供 MVC 能力,必须) -
spring-boot-starter-thymeleaf(自动装配模板引擎、视图解析器、默认路径等)
引入后 Spring Boot 会自动完成所有配置:模板默认从 src/main/resources/templates/ 加载,后缀为 .html,缓存默认开启(开发时建议关掉)。
编写模板:HTML 就是模板,加命名空间即可识别
在 templates/ 下新建 index.html,开头加上 Thymeleaf 命名空间:
这样 IDE(如 IDEA)能高亮语法、提示属性;浏览器直接双击打开也能看到静态结构,无需启动服务。
示例:显示欢迎语和用户列表
Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。
<h1 th:text="${title}">默认标题</h1>
- 张三
传递数据:Controller 返回模板名,Model 塞值
写一个普通 @Controller 类,方法返回字符串(即模板文件名,不带路径和后缀):
@Controller
public class PageController {
@GetMapping("/home")
public String home(Model model) {
model.addAttribute("title", "欢迎使用 Thymeleaf");
model.addAttribute("users", Arrays.asList(
new User("Alice", 28),
new User("Bob", 32)
));
return "index"; // 对应 templates/index.html
}
}
注意:不用写 return "templates/index",也不用加 .html,Spring Boot 自动按约定解析。
常用动态能力:几个关键语法覆盖 90% 场景
Thymeleaf 不需要写 Java 代码,靠属性指令驱动:
-
显示文本:
th:text="${name}"(自动转义 HTML)或th:utext="${rawHtml}"(渲染 HTML,慎用) -
条件显示:
th:if="${isLoggedIn}"或th:unless="${isEmpty}" -
循环列表:
th:each="item, stat : ${list}",stat.index、stat.odd等状态可用 -
链接生成:
th:href="@{/user/{id}(id=${user.id})}",自动补上下文路径 -
国际化:
th:text="#{welcome.message}",配合messages.properties
这些语法都嵌在标准 HTML 属性里,前端人员可直接编辑、预览,后端注入逻辑,协作成本低。
开发调优:让页面改完立刻生效
默认 Thymeleaf 在生产环境开启模板缓存,开发阶段需关闭:
spring.thymeleaf.cache=false spring.thymeleaf.enabled=true
放在 application.properties 或 application.yml 即可。还可调整前缀(如改成 classpath:/views/)或后缀,但通常无需改动。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










