Spring Boot Thymeleaf2025 年 3 月 18 日 | 6 分钟阅读 什么是 Thymeleaf?Thymeleaf 是一个开源的 Java 库,它在 Apache License 2.0 许可下发布。它是一个 HTML5/XHTML/XML 模板引擎。它是一个用于 Web (基于 servlet) 和非 Web (离线) 环境的 服务器端 Java 模板引擎。它非常适合现代 HTML5 JVM Web 开发。它提供了与 Spring Framework 的完全集成。 它对模板文件应用一组转换,以便显示由应用程序生成的数据或文本。它适用于在 Web 应用程序中提供 XHTML/HTML5。 Thymeleaf 的目标是提供一种时尚且格式良好的方式来创建模板。它基于 XML 标签和属性。这些 XML 标签定义了在 DOM (文档对象模型) 上执行预定义逻辑,而不是在模板内将该逻辑显式地编写为代码。它是 JSP 的替代品。 Thymeleaf 的架构允许快速处理依赖于已解析文件缓存的模板。它在执行期间使用最少的 I/O 操作。 为什么我们使用 Thymeleaf?JSP 几乎与 HTML 相似。但它不像 Thymeleaf 那样与 HTML 完全兼容。我们可以在浏览器中正常打开和显示 Thymeleaf 模板文件,而 JSP 文件则不能。 Thymeleaf 支持变量表达式 (${...}),如 Spring EL,并在模型属性上执行,星号表达式 (*{...}) 在表单后备 bean 上执行,散列表达式 (#{...}) 用于国际化,链接表达式 (@{...}) 重写 URL。 与 JSP 一样,Thymeleaf 也适用于丰富的 HTML 电子邮件。 Thymeleaf 可以处理哪些类型的模板?Thymeleaf 可以处理六种类型的模板 (也称为模板模式),如下所示
除旧版 HTML5 模式外,上述所有模式均指定义良好的 XML 文件。它允许我们处理 HTML5 文件,这些文件具有诸如独立标签、无值的标签属性或未写在引号之间之类的功能。 为了在这种特定模式下处理文件,Thymeleaf 执行一个转换,将文件转换为格式良好的 XML 文件(有效的 HTML5 文件)。 注意:在 Thymeleaf 中,验证仅适用于 XHTML 和 XML 模板。Thymeleaf 还允许我们通过指定解析此模式下的模板的方式来定义我们自己的模式。通过这种方式,任何可以建模为 DOM 树的东西都可以通过 Thymeleaf 有效地作为模板处理。 标准方言Thymeleaf 是一个模板引擎框架,它允许我们定义 DOM 节点。在模板中处理的 DOM 节点。 将逻辑应用于 DOM 节点的对象称为处理器。一组处理器以及一些额外的工件称为方言。包含 Thymeleaf 核心库的方言称为标准方言。 如果我们想在利用库的高级功能的同时定义我们自己的处理逻辑,我们可以定义我们自己的方言。在模板引擎中,我们可以一次配置多个方言。 Thymeleaf 集成包 (thymeleaf-spring3 和 thymeleaf-spring4) 定义了一个名为 SpringStandard Dialect 的方言。标准方言和 SpringStandard 几乎相同。但是标准方言有一些小的更改,可以更好地利用 Spring Framework 中的某些功能。 例如,使用 Spring 表达式语言而不是 Thymeleaf 的标准 ONGL (对象图导航语言)。 标准方言可以在任何模式下处理模板。但是它非常适合面向 Web 的模板模式 (HTML5 和 XHTML)。它支持并验证以下 XHTML 规范
标准方言处理器是属性处理器,它允许浏览器在处理 HTML5/XHTML 模板文件之前显示它们。这是因为它们忽略了其他属性。 例如,当 JSP 文件使用标签库时,它包含浏览器无法显示的某些代码片段,例如 Thymeleaf 标准方言允许我们使用以下代码实现相同的功能。 上面的代码还允许我们在其中定义一个 value 属性 (Thomas)。当原型在浏览器中打开时,将显示该值。该属性将被评估的 ${student.name} 在 Thymeleaf 处理模板期间的结果值替换。 它允许设计人员和开发人员在同一个模板文件上工作,从而减少了将静态原型转换为工作模板文件所需的精力。这被称为自然模板。 Thymeleaf 功能
Thymeleaf 实现我们可以通过在应用程序的 pom.xml 文件中添加 spring-boot-starter-thymeleaf 依赖项来实现 Thymeleaf 模板引擎。Spring Boot 配置模板引擎以从 /resource/templates 读取模板文件。 Spring Boot Thymeleaf 示例让我们创建一个 Spring Boot 应用程序并实现 Thymeleaf 模板。 步骤1: 打开Spring Initializr http://start.spring.io。 步骤 2: 选择 Spring Boot 版本 2.3.0.M1。 步骤 2: 提供 Group 名称。我们提供了 com.javatpoint。 步骤 3: 提供 Artifact Id。我们提供了 spring-boot-thymeleaf-view-example. 步骤 5: 添加依赖项 Spring Web 和 Thymeleaf。 步骤 6: 单击 Generate 按钮。当我们单击 Generate 按钮时,它将规范包装在一个 Jar 文件中,并将其下载到本地系统。 ![]() 步骤 7:解压 Jar 文件并将其粘贴到 STS 工作区中。 步骤 8:导入 STS 中的项目文件夹。 文件 -> 导入 -> 现有 Maven 项目 -> 浏览 -> 选择文件夹 spring-boot-thymeleaf-view-example -> 完成 它需要一些时间来导入。 步骤 9: 在包 com.javatpoint 中创建一个模型类。我们创建了一个名为 User 的模型类。 在此类中,我们定义了两个变量 name 和 email 并生成 Getters 和 Setters。 User.java 步骤 10: 创建一个控制器类。我们创建了一个名为 DemoController 的控制器类。 DemoController.java 在下一步中,我们将创建 Thymeleaf 模板。 步骤 11: 在项目的 templates (src/main/resources/templates) 文件夹中,创建一个名为 user-data 的 Thymeleaf 模板。 右键单击 templates 文件夹 -> 新建 -> 其他 -> HTML 文件 -> 下一步 -> 提供文件名 -> 完成 注意:不要忘记在模板文件中实现以下内容。user-data.html 步骤 12: 同样,在文件夹模板中创建一个 HTML 文件。我们创建了一个名为 index 的 HTML 文件。 index.html 步骤 13: 打开 application.properties 文件,并在其中添加以下属性。 application.properties 创建完所有文件、文件夹和包后,项目目录如下所示 ![]() 让我们运行该应用程序。 步骤 14: 打开 SpringBootThymeleafViewExampleApplication.java 文件并将其作为 Java 应用程序运行。 SpringBootThymeleafViewExampleApplication.java 步骤 15: 现在,打开浏览器并调用 URL https://:8080。它显示输出,如下所示。 ![]() 提供 用户名 和 电子邮件,然后单击 提交 按钮。 ![]() 单击 提交 按钮后,URL 更改为 https://:8080/save,并显示 user-data,如下所示。 ![]() 在本节中,我们讨论了 Thymeleaf 视图。如果我们要使视图更具吸引力,我们可以在应用程序中添加 CSS 和 JS 文件。这些文件必须位于 src/main/resources/static 文件夹下。 下一主题Spring Boot 缓存 |
我们请求您订阅我们的新闻通讯以获取最新更新。