Thymeleaf
Thymeleaf 是一个用于 Web 和独立环境的服务器端 Java 模板引擎。 其主要目标是将自然模板引入您的开发工作流程——HTML 可以在浏览器中正确显示,同时也能作为静态原型工作。
确保启用了 Thymeleaf 插件
在 设置 对话框(Ctrl+Alt+S )中选择 插件 | 已安装。
请确保 Thymeleaf 插件旁的复选框已选中。
否则,请选中复选框以启用插件。
应用更改并关闭对话框。 如果出现提示,请重启 IDE。
有关更多信息,请参见 安装插件。
添加 Thymeleaf 支持
您可以在创建项目或模块时添加 Thymeleaf 支持,或为现有项目或模块添加。 IntelliJ IDEA 会下载所选的 Thymeleaf 库文件,并将它们添加到相应模块的依赖项中。
您还可以通过打开合适的 pom.xml 文件来创建一个 Thymeleaf 项目。 在这种情况下,Maven 将管理您项目中的依赖项。 更多信息请参阅 Maven。
带有 Thymeleaf 的新 Java Enterprise 项目或模块
在主菜单中,前往 或 。
在打开的对话框中,从左侧的列表中选择 Jakarta EE 并点击 下一步(N)。
在 依赖项 列表中,在 实现 下,选择 Thymeleaf ,然后点击 下一步(N)。
为您的项目或模块输入名称,并点击 完成(F)。
有关 Java 企业项目的更多信息,请参阅 教程:您的第一个 Jakarta EE 应用程序。
使用 Thymeleaf 的新 Spring 项目或模块
请前往 或 。
在打开的对话框中,从左侧的列表中选择 Spring Initializr 并点击 下一步(N)。
从 依赖项 列表中,点击 模板引擎 并选择 Thymeleaf 选项。

点击 创建。
有关 Spring 项目的更多信息,请参阅 教程:创建您的第一个 Spring 应用程序。
为现有项目启用 Thymeleaf 支持
在编辑器中打开构建文件( pom.xml 或 build.gradle ,取决于您在项目中使用的构建工具)。
请添加以下依赖项,但请根据您的项目需求更改版本:
<dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf</artifactId> <version>3.0.12.RELEASE</version> </dependency>implementation('org.thymeleaf:thymeleaf:3.0.12.RELEASE')按 Ctrl+Shift+O 导入更改。
Thymeleaf 支持功能
对 IntelliJ IDEA 中的 Thymeleaf 的支持包括以下内容:
- 代码补全
表达式和
th:*属性的 代码补全。- 从引用导航
从模板中的引用导航到相应的 getter 方法、 .属性 文件中的消息或其他适当的代码片段。 请转到 或按 Ctrl+B。
- 导航到类型定义
请转到 或按 Ctrl+Shift+B。
- 重构
对引用属性、getter 方法、迭代和状态变量等的 重命名 重构。 请转到 或按 Shift+F6。
- 检查
代码检查 ,帮助您发现和修复未解析的引用和表达式语法中的错误。
- 意图操作
意图操作 ,例如 创建属性 用于未解决的消息引用或 导入类 用于向
import语句添加到org.thymeleaf.*类。- 原型预览
预览您原型的静态部分 (模板的静态部分)在网络浏览器中从编辑器中预览。
在浏览器中预览 Thymeleaf 原型
IntelliJ IDEA 允许您在网络浏览器或内置预览中以相同方式预览模板的静态部分, 就像普通的 HTML 文件一样。

如果您想在模板中预览动态数据,您需要运行您的应用程序。 在下面的示例中,我们将创建一个简单的 Thymeleaf 模板并在 Spring MVC 应用程序中将其用作视图。
创建 Thymeleaf 模板
创建一个如 添加 Thymeleaf 支持 所述的新 Spring Boot 项目并将其命名为
demo。在 项目 工具窗口 (Alt+1) 中,右键点击位于 src|main|java 中的
demo包并选择 。将该类命名为
MyFirstApp。
向新类添加控制器,例如:
package org.example.demo; import org.springframework.ui.Model; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import java.util.Arrays; @Controller public class MyFirstApp { @RequestMapping("/home") public String index(Model model) { model.addAttribute("message", "Hello Thymeleaf"); model.addAttribute("items", Arrays.asList("Item 1", "Item 2", "Item 3")); return "start_page"; } }在 resources 目录下,创建一个名为
模板的目录。在
模板中,创建一个命名为start_page的 HTML 文件。该模板使用了
${message}和${items}变量(在我们之前添加的控制器中传递的)以及#datesThymeleaf 对象,该对象用于处理日期。<!DOCTYPE HTML> <html lang=""> <head> <title>Hello</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> </head> <body> <h1 th:text="${message}"></h1> <p>Thymeleaf Iteration:</p> <ul> <li th:each="item : ${items}" th:text="${item}"></li> </ul> <p th:text="'Current Year: ' + ${#dates.format(#dates.createNow(), 'yyyy')}"></p> </body> </html>
IntelliJ IDEA 识别模板,并允许您通过按下 Ctrl+B 从变量导航到它们被声明的控制器代码。
您还可以从控制器导航到模板:在 MyFirstApp.java 中,点击 ,然后选择 导航到相关视图。 请注意,
start_page 已标记为带下划线的链接,这意味着 IntelliJ IDEA 检测到项目中的此类模板:您可以 Ctrl 点击此链接(或按 Ctrl+B )以导航到该模板。

预览模板
运行应用程序:按 Shift+F10 或确保在窗口标题的运行小部件中选择了 演示应用程序 ,然后点击其旁边的
。
在您的浏览器中打开 localhost:8080/home。
Spring 将呈现 start_page 模板并将变量替换为其值。
