Thymeleaf是一个Java XML / XHTML / HTML5 模板引擎 ,可以在Web(基于servlet )和非Web环境中工作。它更适合在基于MVC的Web应用程序的视图层提供XHTML / HTML5,但它甚至可以在脱机环境中处理任何XML文件。它提供完整的Spring Framework

Thymeleaf
开发者Daniel Fernández
当前版本3.0.11[1](2018年10月29日 (2018-10-29)
编程语言Java
操作系统Cross-platform
标准XML, XHTML, HTML5
类型Template Engine
许可协议Apache License 2.0
网站www.thymeleaf.org

在Web应用程序中,Thymeleaf旨在成为JavaServer Pages(JSP)的完全替代品,并实现自然模板的概念:模板文件可以直接在浏览器中打开,并且仍然可以正确显示为网页。

Thymeleaf是 开源软件、许可下 Apache许可证2.0

功能

从该项目的网站:[2]

  • 用于XMLXHTMLHTML5的 Java 模板引擎 。
  • 适用于Web和非Web(离线)环境。 没有硬依赖Servlet API。
  • 基于称为方言的模块化特征集。
    • 方言特征(例如:评估,迭代等)通过将它们链接到模板的标签和/或属性来应用。
    • 开箱即用的两种方言:Standard和SpringStandard(适用于Spring MVC应用程序,与标准语法相同)。
    • 开发人员可以扩展和创建自定义方言。
  • 几种模板模式:
    • XML :验证DTD与否。
    • XHTML 1.0和1.1 :是否针对标准DTD进行验证。
    • HTML5 :XML格式的代码和基于遗留的HTML5。 传统的非XML代码将自动清理并转换为XML格式。
  • 完整(和可扩展)的国际化支持。
  • 可配置的高性能解析模板缓存 ,可将输入/输出降至最低。
  • 自动DOCTYPE转换 - 从模板DTD到结果DTD-用于(可选)验证模板和结果代码。
  • 极易扩展:如果需要,可以用作模板引擎框架。
  • 完整的文档,包括几个示例应用

Thymeleaf的例子

下面的例子产生一个HTML5表的行为每个项目的一个 列表<产品> 变量 所有产品.

<table>
  <thead>
    <tr>
      <th th:text="#{msgs.headers.name}">Name</th>
      <th th:text="#{msgs.headers.price}">Price</th>
    </tr>
  </thead>
  <tbody>
    <tr th:each="prod : ${allProducts}">
      <td th:text="${prod.name}">Oranges</td>
      <td th:text="${#numbers.formatDecimal(prod.price,1,2)}">0.99</td>
    </tr>
  </tbody>
</table>

这段代码包括:

  • 国际化表现形式: #{...}rh
  • 变量/模型的属性评估表: ${的。中。中。 }
  • 实用功能: #数字。formatDecimal(中。中。中。 )

此外,这个片段(X)HTML代码可以被完全显示通过浏览器作为一个原型,没有正在进行处理:它是一个 自然的模板中。

参见

参考文献

  1. ^ http://forum.thymeleaf.org/Thymeleaf-3-0-11-JUST-PUBLISHED-td4031356.html页面存档备份,存于互联网档案馆) Release announcement
  2. ^ Archived copy. [2011-10-16]. (原始内容存档于2011-10-08). 

外部链接