
01 引言
Thymeleaf 是一个用于 Web 和独立环境的现代服务器端 Java 模板引擎。它能够处理 HTML、XML、JavaScript、CSS 甚至纯文本。其核心目标是为开发工作流程带来优雅的自然模板——可以在浏览器中直接静态打开显示原型,也能通过注入动态数据作为模板正常运行,这极大地加强了前后端协作的效率。
与传统的 JSP 相比,Thymeleaf 不依赖 Servlet容器,可以与 Spring Framework 无缝集成,并且语法更简洁、更现代化,已成为 Spring Boot 官方推荐的模板引擎。
除了${}语法,其他的语法你用了么?
02 核心语法详解
Thymeleaf 的语法主要通过一系列以 th: 开头的属性(Attribute)来实现。
2.1 基础表达式
${...} 变量表达式
用于访问模型(Model)中的属性或内置对象。这是最常用的表达式。
<span th:text="${user.name}"></span>
*{...} 选择表达式
在父对象(由 th:object 指定)的上下文中进行选择,简化了对同一对象多个属性的引用。
<div th:object="${user}">
<p th:text="*{name}"></p>
</div>
等同于
<div>
<p th:text="${user.name}"></p>
</div>
#{...} 消息表达式
用于国际化(i18n),从外部消息源(如 .properties 文件)中获取文本。
<span th:text="#{home.welcome}"></span>
值得注意的是:.properties文件的位置是有讲究的。

默认文件实在resources下的messages.properties。可以通过spring.messages.basename属性修改位置以及名称。否则会无法解析:

框架默认会按照地区匹配名称,如国内优先匹配xxx_zh_CN.properties,如果没有,最后会匹配xxx.properties中的信息。

- ① 配置国际化名称以及位置
- ② 添加
home.properties文件 - ③ 定义变量
- ④ 消息表达式取值
@{...} 链接表达式
用于构建 URL,非常适用于链接、表单动作、静态资源引用等。它会自动进行上下文管理。
<link th:href="@{/css/main.css}" rel="stylesheet" type="text/css" />

最低0.47元/天 解锁文章

2325

被折叠的 条评论
为什么被折叠?



