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の下でライセンスされている。
特徴 プロジェクトのウェブサイトから: Thymeleaf Features
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コードの断片は、まったく処理せずに、プロトタイプとしてブラウザで完全に表示できる: これは自然なテンプレートである。
関連項目
テンプレートエンジン (ウェブ) JavaServer Pages Spring Framework FreeMarker Apache Velocity テンプレート属性言語
脚注
外部リンク
Thymeleaf Thymeleaf とAngularの比較