这个Thymeleaf 生态系统由两种类型的工具和扩展组成:
- 官方扩展(又称Thymeleaf Extras):由Thymeleaf 团队创建,并作为项目的一部分进行支持。
- 非官方或社区扩展:从此页面链接,但由 Thymeleaf 项目之外的 Thymeleaf 用户开发和维护,并根据其自己的许可和支持条款进行分发。
官方工具与扩展
Thymeleaf 测试库
https://github.com/thymeleaf/thymeleaf-testing
Thymeleaf 测试库允许开发人员以非常简单且声明式的方式为其应用程序和扩展创建自动化测试。其特性包括:
- 作为一个独立库运行,可从多个测试框架调用例如 JUnit。
- 仅测试视图层:模板处理及其结果。
- 允许将测试输入指定为标记片段,也可以指定为正在开发的基于 Thymeleaf 的应用程序的模板文件链接,以便轻松测试其视图层.
- 多样化的测试构件:测试序列、迭代、并发执行等。
- Spring Framework和Spring Security集成。
测试规范可以像这样简单:
Thymeleaf Eclipse 插件
https://github.com/thymeleaf/thymeleaf-extras-eclipse-plugin
Thymeleaf 的 Eclipse IDE 插件添加了内容辅助功能,使在 Thymeleaf 模板中工作更加便捷和舒适。
- Code completion of Thymeleaf 属性处理器的代码补全.
- 每个属性的详细说明。
- 表达式中的内容辅助:表达式工具对象.

Thymeleaf + Apache Tiles 2
https://github.com/thymeleaf/thymeleaf-extras-tiles2
Thymeleaf Extras Tiles 2 库提供了一个方言,允许使用 Apache Tiles 2 作为基于 Thymeleaf 的应用程序的布局方法。功能包括:
- 在 Tiles 定义中使用Thymeleaf 模板.
- 在布局定义中使用 Thymeleaf 模板片段,自然模板使用 Tiles 是可能的!
- 混合使用 JSP 和 Thymeleaf如果需要的话,在相同布局中使用模板。
- 可选的Spring MVC 3和Spring Web Flow 2.3集成。
使用此库,Tiles 定义可以指定 Thymeleaf 模板,或者甚至只指定它们的片段(使用常规th:include
表示法):
...并且模板可以调用 Thymeleaf Tiles 方言来包含布局的其他部分:
Thymeleaf + Spring Security
https://github.com/thymeleaf/thymeleaf-extras-springsecurity
Thymeleaf Extras Spring Security 库提供了一个方言,允许将 Spring Security(版本 3.x、4.x 和 5.x)的若干授权和认证方面集成到基于 Thymeleaf 的应用程序中。功能包括:
- 基于 Thymeleaf 的 Spring Security JSP 标签库等效物.
- 添加新的表达式工具对象如
#authentication
和#authorization
用于将 Spring Security 功能集成到 Thymeleaf 表达式中. - 添加新的属性如
sec:authentication
和sec:authorized
更轻松地配置安全性。
使用该库,可以轻松使用 Spring Security 中定义的基于角色的访问限制:
与安全相关的对象也可以包含在你的常规 Thymeleaf 表达式中:
Thymeleaf + IE 条件注释
https://github.com/thymeleaf/thymeleaf-extras-conditionalcomments
Thymeleaf Extras 条件注释库在 Thymeleaf 模板中提供了对 Internet Explorer条件注释的支持。
- 在条件注释中处理 Thymeleaf属性处理器.
- 支持完整的条件注释语法。
IE 条件注释看起来像这样:
...并感谢这个库,它们被正确执行为:
社区方言
由 Thymeleaf 项目之外的 Thymeleaf 用户开发和维护,并根据其自己的许可和支持条款进行分发。
Thymeleaf Layout 方言
https://github.com/ultraq/thymeleaf-layout-dialect
一个 Thymeleaf 的方言,允许你使用布局/装饰器模板来美化你的内容,以及将整个片段元素传递给包含的页面,所有这些旨在帮助提高代码重用率。如果你曾经使用过 SiteMesh 来美化你的 JSP,或使用 Facelets 与 JSF,则会对此库的概念非常熟悉。
Dandelion 项目
Dandelion 是一个免费的开源 Java 框架,旨在简化基于 JVM 环境的 Web 开发。
它有助于操控网页资源 (JS, CSS)通过多种方式:良好的组织结构及经典的优化手段如最小化、合并、压缩或缓存。它还通过一组可扩展组件促进强大 JavaScript 库的集成。
PagesDialect
http://pagesdialect.sourceforge.net/
PagesDialect 是一个自定义方言,提供一些集合处理实用程序,如分页、排序或导出。
Thymeleaf With 方言
https://github.com/Antibrumm/thymeleaf-extras-with-dialect
一个 Thymeleaf 的方言,允许你使用带有 "with" 前缀的属性来避免写出冗长的th:with
表达式。
Thymeleaf 缓存方言
https://github.com/Antibrumm/thymeleaf-extras-cache-dialect
我们网页的某些部分在应用程序生命周期中不会频繁更改,或者仅依赖于用户会话。
该方言将缓存声明它的元素的输出结果,并在命中缓存时替换该元素。
HTML5 验证方言
http://html5valdialect.sourceforge.net/
该方言读取JSR-303注解并修改 HTML 代码,引入与注解匹配的 HTML5 表单验证代码。
WUIC 方言
WUIC 是一个 Java 项目,帮助开发者管理他们的网页静态资源。例如 JS/CSS 压缩和聚合、精灵图计算、在任何更改时淘汰服务器/浏览器缓存等。该方言帮助 Thymeleaf 用户在撰写模板时使用 WUIC 特性。
数据属性方言
https://github.com/mxab/thymeleaf-extras-data-attribute
Thymeleaf 数据属性方言在data:*
属性中评估 Thymeleaf 表达式data-*
并将结果设置为 HTML 标签的属性。
Thymeleaf Spring Data 方言
https://github.com/jpenren/thymeleaf-spring-data-dialect
该方言使用 Spring Data 分页元素来创建 Bootstrap 风格的分页和排序组件。
Thymeleaf Shiro 方言
https://github.com/theborakompanioni/thymeleaf-extras-shiro
用于 Apache Shiro 标签的 Thymeleaf 方言。
社区集成
用于 MVC 1.0(JSR371)的 Thymeleaf 集成
https://github.com/inbuss/thymeleaf-mvc
https://github.com/inbuss/thymeleaf-cdi
https://github.com/inbuss/thymeleaf-jersey
一个提供 Thymeleaf 作为视图引擎的扩展在 JavaEE MVC 1.0(JSR371)环境中使用。包括 CDI 集成,向表达式暴露命名 Bean,并使用 JAX-RS ParamConverter 功能扩展 Thymeleaf 转换服务(仅限 Jersey);这些功能也可作为单独的扩展用于非 MVC 环境。
HDIV + Thymeleaf
HDIV 是一个Web 应用安全框架,它有助于避免最常见的 Web 安全风险(OWASP 十大)。HDIV 控制服务器和客户端之间的数据流,透明地应用安全验证,无需修改应用程序源代码。
HDIV 对所有从服务器发送到客户端的数据进行完整性检查(例如防止参数篡改和 URL 操纵),并对来自文本字段的数据进行常规输入验证。此外,HDIV 向每个链接和表单添加随机令牌以防止 CSRF 安全风险。
Play Framework 1.2 的 Thymeleaf 模块
https://github.com/choreo/play-thymeleaf
此模块允许您在 Play Framework 1.2 的视图层中使用 Thymeleaf 替代 Groovy 模板。
Play Framework 2(Scala)的 Thymeleaf 模块
https://github.com/dmitraver/scala-play-thymeleaf-plugin
一个用于 Play Framework(Scala)的模块,使用 Thymeleaf 模板引擎替代 Twirl——Play Framework 的标准模板引擎。
社区工具
Bootify.io
Bootify.io 是 Spring Boot 的代码生成器。前端有三个选项可供选择——全部基于 Thymeleaf,还可选 Webpack、Bootstrap 或 Tailwind CSS。用户可以得到最新版本的定制化 Spring Boot 应用程序,其中包含 Thymeleaf 配置以及插件、开发期间 Thymeleaf 模板的热重载和 CRUD 前端。
Thymol
https://github.com/thymol/thymol.js
Thymol 是一个有用的 JavaScript 库,允许开发者静态应用他们的th:include
/th:replace
片段包含(无需执行应用程序)。
此外,还提供了许多强大的静态原型设计功能,如允许开发者在其原型上静态评估条件片段(th:if
/th:unless
),提升自然模板开发的体验。
thymeleaf-fragment.js
https://github.com/BlackPepperSoftware/thymeleaf-fragment.js
thymeleaf-fragment.js 提供了一个简单的脚本,仅使用 jQuery 处理th:include
,
th:insert
和th:replace
属性。这使得使用片段的自然模板可以在浏览器中作为静态原型查看。
Thymus
https://ugate.github.io/thymus
thymus.js 是受 Thymeleaf 启发的 JQuery 插件,可作为客户端浏览器通过碎片化的模型/视图更新使用的 Thymeleaf 客户端控制器。thymus.js 足够灵活,可在不依赖 Thymeleaf 的情况下独立运行,但也可以作为 Thymeleaf 的强大生产伴侣,或作为离线原型引擎使用。
Spring MVC 快速入门 Maven 原型
https://github.com/kolorobot/spring-mvc-quickstart-archetype
一个包含 Thymeleaf、Spring MVC、Spring Security、Bootstrap、JPA(Hibernate / HSQLDB / Spring Data JPA)、MongoDB 和 JUnit 的 Web 应用程序 Maven 原型。
Thymeleaf + Spring MVC Maven 原型模板
http://www.lordofthejars.com/2012/01/once-upon-time-and-long-ago-i-heard.html
一个用于搭建基于 Spring MVC 和 Thymeleaf 的 Web 应用的 Maven 原型模板。
Thymesheet
https://connect-group.github.io/thymesheet/
Thymesheet 是 Thymeleaf 的一个扩展,它允许你将诸如th:if
, th:text
等标签属性移至外部 CSS3 文件中。这意味着 HTML 中完全不嵌入任何 Java/服务器逻辑,使自然模板化更进一步!兼容 Tiles、Spring、条件注释以及任何 Thymeleaf 方言。
Thymeleaf JAWR 扩展
https://github.com/dtrunk90/thymeleaf-jawr-extension
这是为 Thymeleaf 模板引擎开发的一个方言,用于集成 Jawr(一个可调优的 JavaScript 和 CSS 打包解决方案,支持以模块化文件形式快速开发资源)。
示例演示
SQL 方言和独立 Servlet
https://github.com/jmiguelsamper/thymeleaf-extras-sqldialect
此示例 Web 应用程序介绍了一种使用 Thymeleaf 实现类似 PHP 页面效果的方法,且无需编写任何 Java 代码。为此,引入了一个新的 SQL 方言以及一个用于独立运行模板的 Servlet。