Thymeleaf
表示
開発元 | Daniel Fernández |
---|---|
最新版 |
3.0.15[1]
/ 2022年1月31日 |
プログラミング 言語 | Java |
対応OS | クロスプラットフォーム |
規格 | XML, XHTML, HTML5 |
種別 | テンプレートエンジン |
ライセンス | Apache License 2.0 |
公式サイト |
www |
Thymeleafは、Web (サーブレットベース) と非Web環境の両方で機能するJava XML / XHTML / HTML5テンプレート エンジンである。 MVCベースの Webアプリケーションのビュー レイヤーで XHTML/HTML5 を提供するのに適しているが、オフライン環境でも任意の XML ファイルを処理できる。完全なSpring Framework統合を提供する。
Webアプリケーションでは、ThymeleafはJavaServerPages (JSP) の完全な代替を目指しており、 Natural Templatesの概念を実装している: ブラウザで直接開くことができ、Web ページとして正しく表示されるテンプレート ファイルである。
Thymeleafはオープンソース ソフトウェアであり、 Apache License 2.0の下でライセンスされている。
特徴
[編集]プロジェクトのウェブサイトから: [2]
- XML、XHTML、およびHTML5用の Javaテンプレート エンジン。
- Web環境と非Web (オフライン) 環境の両方で機能する。サーブレットAPI への強い依存はない。
- ダイアレクトと呼ばれるモジュラー機能セットに基づいている。
- 方言機能 (例: 評価、反復など) は、それらをテンプレートのタグや属性にリンクすることによって適用される。
- すぐに使用できる2つの方言: StandardとSpringStandard ( Spring MVCアプリの場合、Standard と同じ構文)。
- 開発者は、カスタム方言を拡張および作成できる。
- いくつかのテンプレート モード:
- 完全な (そして拡張可能な)国際化サポート。
- 入力/出力を最小限に抑える、構成可能な高性能の解析済みテンプレート キャッシュ。
- テンプレートと結果コードの両方の検証 (オプション) のための、テンプレートDTDから結果 DTDへの自動DOCTYPE変換。
- 非常に拡張可能: 必要に応じて、テンプレート エンジン フレームワークとして使用できる。
- いくつかのサンプル アプリケーションを含む完全なドキュメント。
Thymeleafの例
[編集]次の例では、allProductsというList<Product>変数の各項目の行を含む 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
- 変数/モデル属性の評価式: ${ . . . }
- ユーティリティ関数: #numbers.formatDecimal( . . . )
また、この (X)HTMLコードの断片は、まったく処理せずに、プロトタイプとしてブラウザで完全に表示できる: これは自然なテンプレートである。
関連項目
[編集]- テンプレートエンジン (ウェブ)
- JavaServer Pages
- Spring Framework
- FreeMarker
- Apache Velocity
- テンプレート属性言語
脚注
[編集]- ^ https://www.thymeleaf.org/releasenotes.html#thymeleaf-3.0.15 Release notes
- ^ “Features - Thymeleaf: Java XML/XHTML/HTML5 template engine”. 2011年10月8日時点のオリジナルよりアーカイブ。2011年10月16日閲覧。 Thymeleaf Features