Thymeleaf

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

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

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

功能 
从该项目的网站：

 用于XML ， XHTML和HTML5的 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代码可以被完全显示通过浏览器作为一个原型，没有正在进行处理：它是一个 自然的模板中。

参見 

 模板引擎（网络） 
 JavaServer Pages 
 Spring框架 
 FreeMarker 
 Apache Velocity 
 模板属性语言

参考文献

外部連結 

 Thymeleaf
用Java編程的自由軟體
Java函式庫
網頁模板引擎
Java企业平台
有未审阅翻译的页面