【Spring Boot】thymeleaf模板引擎

一、概述

  • Thymeleaf是新一代Java模板引擎,支持HTML原型,可以直接被浏览器打开,此时浏览器会忽略未定义的Thymeleaf标签属性,展示Thymeleaf模板的静态页面效果。
  • 当在应用程序中运行时,它会动态地替换掉页面设置的标签属性,实现动静结合的效果。
  • Thymeleaf的主要目标是为开发工作流程带来优雅自然的模板,HTML可以在浏览器中正确显示,也可以作为静态原型工作,从而可以在开发团队中加强协作。

二、主要特点

  1. 动静结合
    • Thymeleaf既可以直接使用浏览器打开,查看页面的静态效果,也可以通过Web应用程序进行访问,查看动态页面效果。
  2. 开箱即用
    • Thymeleaf提供了Spring标准方言以及一个与Spring MVC完美集成的可选模块,可以快速地实现表单绑定、属性编辑器、国际化等功能。
  3. 多方言支持
    • 它提供了Thymeleaf标准和Spring标准两种方言,可以直接套用模板实现JSTL、OGNL表达式;必要时,开发人员也可以扩展和创建自定义的方言。
  4. 与SpringBoot完美整合
    • SpringBoot为Thymeleaf提供了默认配置,并且还为Thymeleaf设置了视图解析器,因此Thymeleaf可以与Spring Boot完美整合。
  5. 高兼容性和易扩展性
    • Thymeleaf易于与现有的Spring Framework集成,并且支持自定义方言和表达式的扩展,提供了灵活的模板开发能力。

三、基本用法

  1. 引入依赖
    • 在Spring Boot项目中,可以通过在pom.xml中添加spring-boot-starter-thymeleaf依赖来引入Thymeleaf。
  2. 配置
    • Spring Boot为Thymeleaf提供了默认配置,但开发者也可以根据需要调整配置,如模板位置、文件编码、缓存设置等。
  3. 编写模板
    • 使用HTML语法编写模板,并在需要动态替换内容的地方添加Thymeleaf的特定标签和表达式。
  4. 控制器
    • 在Spring MVC控制器中,通过返回模板名称和模型数据来渲染页面。

四、常用表达式和标签

  1. 变量表达式${...},用于获取对象的属性和方法。
  2. 选择变量表达式*{...},与${...}类似,但需要先通过th:object指定对象。
  3. 链接表达式@{...},用于处理URL,支持路径变量的动态替换。
  4. 消息表达式#{...},用于从外部资源(如.properties文件)中获取国际化文本。
  5. 片段表达式~{...},用于模板间的片段包含和替换。

五、优势

  1. 自然模板:Thymeleaf允许开发者直接编写HTML模板,无需担心模板的破坏或额外的标记语言。
  2. 高性能:Thymeleaf在性能上进行了优化,特别是在处理大型模板和复杂页面时。
  3. 丰富的文档和社区支持:Thymeleaf拥有详尽的官方文档和活跃的开发者社区,方便用户解决问题和学习新技能。

相关推荐

  1. 模板引擎是什么?

    2024-07-09 18:36:06       23 阅读
  2. SpringBoot整合FreeMarker模板引擎

    2024-07-09 18:36:06       53 阅读
  3. 模板引擎与 XSS 防御

    2024-07-09 18:36:06       27 阅读
  4. 【Spring Boot】thymeleaf模板引擎

    2024-07-09 18:36:06       26 阅读
  5. Word Excel模版引擎

    2024-07-09 18:36:06       66 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-09 18:36:06       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-09 18:36:06       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-09 18:36:06       58 阅读
  4. Python语言-面向对象

    2024-07-09 18:36:06       69 阅读

热门阅读

  1. SpringBoot Mybatis-Plus 日志带参数

    2024-07-09 18:36:06       25 阅读
  2. 测试绩效评估

    2024-07-09 18:36:06       23 阅读
  3. 【Datagear】使用参数时的If语法

    2024-07-09 18:36:06       22 阅读
  4. 实现基于Elasticsearch的搜索服务

    2024-07-09 18:36:06       27 阅读
  5. 【网络协议】ISIS

    2024-07-09 18:36:06       23 阅读
  6. 第三章 设计模式(2023版本IDEA)

    2024-07-09 18:36:06       23 阅读
  7. 命令模式在金融业务中的应用及其框架实现

    2024-07-09 18:36:06       27 阅读
  8. 【C语言】标识符大通关!

    2024-07-09 18:36:06       30 阅读
  9. Python面试题-8

    2024-07-09 18:36:06       25 阅读
  10. HPE ProLiant MicroServer Gen8加装显卡

    2024-07-09 18:36:06       23 阅读
  11. 查询进程并且杀死

    2024-07-09 18:36:06       28 阅读
  12. 预处理方法

    2024-07-09 18:36:06       27 阅读