这是一个针对新手的 Thymeleaf “极速上手” 教程。
我们将绕过复杂理论,直接通过一个可运行的例子,让你在10分钟内掌握核心用法。
1. 核心理念:自然模板 Thymeleaf 的核心优势在于:你写的
.html
文件可以直接用浏览器打开看静态效果,加上
th:
属性后就是动态模板。
静态原型 :
Default User
动态模板 :
Default User
2. 环境搭建(Spring Boot) 在
pom.xml
中只需一个依赖:
org.springframework.boot
spring-boot-starter-thymeleaf
默认规则 :模板文件放在
src/main/resources/templates/
3. 5个必须掌握的语法
3.1 变量表达式${}
作用
:显示后台传来的数据。
Controller:
model.addAttribute("message", "Hello, Thymeleaf!");
model.addAttribute("user", new User("Alice", 25));
Template:
这里的内容会被替换
用户名:默认名
年龄:0
3.2 链接表达式@{}
作用
:生成正确的 URL 路径。
查看资料
商品详情
3.3 循环th:each
作用
:遍历列表。
Controller:
List hobbies = Arrays.asList("读书", "游泳", "编程");
model.addAttribute("hobbies", hobbies);
Template:
- 一个爱好
-
0 -
读书
3.4 条件判断th:if/th:unless
作用
:根据条件显示/隐藏内容。
欢迎,成年人!
未成年人需家长陪同
用户信息
用户未登录
3.5 表单绑定th:object+th:field
作用
:快速绑定表单数据(最强大的功能!
)。
Controller:
model.addAttribute("user", new User());
Template:
注意 :
th:object
指定绑定对象,
*{field}
表示当前对象的属性。
4. 完整可运行示例 步骤1:创建 Controller
@Controller
public class DemoController {
@GetMapping("/demo")
public String demo(Model model) {
// 传递字符串
model.addAttribute("title", "Thymeleaf 演示");
// 传递对象
User user = new User("张三", 20);
model.addAttribute("user", user);
// 传递列表
List skills = Arrays.asList("Java", "Spring", "Thymeleaf");
model.addAttribute("skills", skills);
return "demo"; // 对应 templates/demo.html
}
// 简单的User类
public static class User {
private String name;
private int age;
// 构造方法、getter、setter...
public User(String name, int age) {
this.name = name;
this.age = age;
}
// 省略getter/setter...
}
}
步骤2:创建模板templates/demo.html
Thymeleaf 快速上手
默认标题
姓名:未知
年龄:0
已成年
未成年人
技能列表:
- 默认技能
返回首页
步骤3:运行并访问 启动应用,访问:
http://localhost:8080/demo
5. 常用技巧总结
场景代码示例
显示当前时间 Hello, [[${user.name}]]!2024-01-01字符串拼接欢迎:用户判断集合为空设置属性内联表达式
6. 调试技巧
检查模板路径
:确保HTML文件在
src/main/resources/templates/
检查控制器注解 :使用
@Controller
而不是
@RestController
检查数据传递 :确保Model中addAttribute的key与模板中的变量名一致 浏览器直接打开 :测试静态效果是否符合预期 这个教程覆盖了Thymeleaf 90%的日常使用场景。
按照这个流程走一遍,你就能快速上手开发了!
遇到具体问题再针对性地深入学习即可。
java其它模板引擎:FreeMarker,Velocity,Mustache,Groovy
