Thymeleaf
開發者 | Daniel Fernández |
---|---|
当前版本 | 3.0.11[1](2018年10月29日 ) |
编程语言 | Java |
操作系统 | Cross-platform |
标准 | XML, XHTML, HTML5 |
类型 | Template Engine |
许可协议 | Apache License 2.0 |
网站 | www |
Thymeleaf是一个Java XML / XHTML / HTML5 模板引擎 ,可以在Web(基于servlet )和非Web环境中工作。它更适合在基于MVC的Web应用程序的视图层提供XHTML / HTML5,但它甚至可以在脱机环境中处理任何XML文件。它提供完整的Spring Framework。
在Web应用程序中,Thymeleaf旨在成为JavaServer Pages(JSP)的完全替代品,并实现自然模板的概念:模板文件可以直接在浏览器中打开,并且仍然可以正确显示为网页。
Thymeleaf是 开源软件、许可下 Apache许可证2.0。
功能
从该项目的网站:[2]
- 用于XML , XHTML和HTML5的 Java 模板引擎 。
- 适用于Web和非Web(离线)环境。 没有硬依赖Servlet API。
- 基于称为方言的模块化特征集。
- 方言特征(例如:评估,迭代等)通过将它们链接到模板的标签和/或属性来应用。
- 开箱即用的两种方言:Standard和SpringStandard(适用于Spring MVC应用程序,与标准语法相同)。
- 开发人员可以扩展和创建自定义方言。
- 几种模板模式:
- 完整(和可扩展)的国际化支持。
- 可配置的高性能解析模板缓存 ,可将输入/输出降至最低。
- 自动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
- 模板属性语言
参考文献
- ^ http://forum.thymeleaf.org/Thymeleaf-3-0-11-JUST-PUBLISHED-td4031356.html (页面存档备份,存于互联网档案馆) Release announcement
- ^ Archived copy. [2011-10-16]. (原始内容存档于2011-10-08).