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 と同じ構文)。
- 開発者は、カスタム方言を拡張および作成できる。
- いくつかのテンプレート モード:
- XML: DTDに対して検証するかどうか。
- XHTML 1.0 および 1.1 : 標準のDTDに対して検証するかどうか。
- HTML5 : XML形式のコードとレガシーベースのHTML5の両方。従来の非XMLコードは自動的にクリーンアップされ、XML形式に変換される。
- 完全な (そして拡張可能な)国際化サポート。
- 入力/出力を最小限に抑える、構成可能な高性能の解析済みテンプレート キャッシュ。
- テンプレートと結果コードの両方の検証 (オプション) のための、テンプレート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コードの断片は、まったく処理せずに、プロトタイプとしてブラウザで完全に表示できる: これは自然なテンプレートである。
関連項目
脚注
外部リンク