Thymeleafチュートリアル(一)概要
Thymeleafって何?
ThymeleafはJavaライブラリです.XML/XHTML/HTML 5テンプレートエンジンで、変換テンプレートファイルに適用してアプリケーションで生成されたデータとテキストを表示できます.
特にXHTML/HTML 5ベースのウェブサービスアプリケーションに適しており、ウェブまたは独立したアプリケーションとして任意のXMLファイルを処理することができます.
Thymeleafの主な目的は、優雅でフォーマットの良い方法でテンプレートを作成することです.この目標を達成するために、XMLタグの内容に明示的に配置するのではなく、予め定義された論理をXMLのタグと属性に配置する.
インテリジェントキャッシュによってファイルを解析することで、実行中のI/O操作が最小限に抑えられるため、テンプレートを処理する能力が非常に高速です.
どんなテンプレートをThymeleafで作ることができますか?
箱を開けて使用します.Thymeleafでは、テンプレートと呼ばれる6つのテンプレートを処理できます. XML Valid XML XHTML Valid XHTML HTML5 Legacy HTML5
以上、フォーマットの良いXMLファイルを提供することができます.Legacy HTML 5を除いて、Legacy HTML 5のいくつかの特徴的な構造はよくありません.例えば、個別のtag(閉じていないtag)、tagのvalueは書いていないか、引用符の間に書いていません.この問題を解決するために、Thymeleafはまずファイルをフォーマットの良いXMLファイルに変換します.
なお、検証はXMLテンプレートとXHTMLテンプレートにのみ使用されます.
しかしながら、これらは唯一のThymeleafで処理可能なテンプレートではなく、ユーザは常に自分のテンプレートを定義することができ、DOMツリーとしてモデリングされても(必ずしもXMLではない)効果的に処理することができる.
方言:標準方言
Thymeleafは、非常に拡張性のあるテンプレートエンジン(実際にはテンプレートエンジンと呼ばれるフレームワーク)であり、テンプレートで処理されるDOMノードと、どのように処理されるかを完全に定義できます.
一定の論理を付与されたDOMノードは処理者と呼ばれ、方言と呼ばれる追加の機能を加えたものであり、Thymeleafのコアライブラリは開梱即用であり、ユーザーのニーズに十分な割合を持つべきものを標準方言と呼ぶ.
このチュートリアルでは、定義された各属性と文法機能を学習する方言が標準方言です.明確に言及しなくても.
もちろん、ユーザーがライブラリの高度なプロパティを使用して自分の処理ロジックを定義したい場合は、ユーザーは自分の方言を作成することができます(標準方言を拡張することもできます).テンプレートエンジンは、複数の方言を一度に同時に構成できます.
公式thymeleaf-spring 3とthymeleaf-spring 4はいずれも「Spring Standard Dialect(spring標準方言)」と定義されており、標準的な方言に相当し、Springフレームワークのいくつかの特性をよりよく利用している(例えば、Spring Expression languageを使用してThymeleafの標準OGLNLの代わりに使用する).Spring MVCのユーザーであれば、時間を無駄にしているわけではありません.ここで勉強しているほとんどの人はSpringアプリケーションで使用されます.
Thymeleaf標準方言は任意のモードでテンプレートを作成することができ、特にユーザーのwebテンプレート(XHTMLとHTML 5の)に適している.HTML 5に加えて、XHTML 1.0 Transitional、XHTML 1.0 Strict、XHTML 1.0 Frameset、XHTML 1.1をサポートしています.
ほとんどの標準方言での処理者はXML属性に基づく処理者である.これにより、ブラウザは、追加のプロパティを簡単に無視するため、処理前にXHTML/HTML 5テンプレートを正しく表示できます.栗を挙げると、JSPがラベルライブラリを使用しているクリップコードがブラウザに直接表示されません.
Thymeleaf標準方言では、同じ機能を実現できますが、ブラウザで表示できます.
テンプレートが静的ブラウザで開くと、テンプレートは正しく表示されるだけでなく、オプションで値のプロパティ「James Carrot」を指定して表示できます.テンプレートThymeleafが処理されると、${user.name}が正しい値に置き換えられてvalueに表示されます.
必要に応じて、デザイナーと開発者が同じテンプレートファイルで作業し、静的プロトタイプをテンプレートファイルに変換する作業を減らすことができます.これは一般的に「Natural Templating」と呼ばれています.
全体構造
ThymeleafのコアはDOM処理エンジンです.具体的には、標準的なDOM APIではなく、独自の高性能であるDOM実装を使用してテンプレートを構築します.
DOMのテンプレートを使用する方法は、Webドキュメントが通常オブジェクトツリーとして表示されるため、Webアプリケーションに適しています(実際にはDOMツリーはブラウザがWebページをメモリに存在させる方法です).同時に、ほとんどのウェブアプリケーションでは1つの数十個のテンプレートしか使用されていません.これらは大きなファイルではありません.アプリケーションの実行時には、通常変更されません.Thymeleafは、ほとんどのテンプレート処理操作にキャッシュを使用しています.これにより、I/Oが少ないだけです(もしあれば).
詳細については、後でこのチュートリアルでキャッシュについて説明します.
しかし、他のテンプレートの解析/処理方法に比べて、このアーキテクチャはテンプレートを実行するためにより大きなメモリ領域を使用する必要があります.これは、Webファイルではなく、大きなデータを作成するXMLドキュメントを使用するべきではないことを意味します.一般的な経験(JVMのメモリサイズによる)では、単一のXMLファイルサイズを数十メガバイトで生成する場合は、Thymeleafを使用しないことをお勧めします.
さらに議論する前に読むべきです
Thymeleafは特にwebアプリケーションで動作するのに適しています.彼らはすべて一連のすべての人がよく知っている基準に基づいて、たとえ彼らが何年も使っても.
HTML 5が登場するにつれて、Web標準はこれまで以上に困惑しています...XHTMLからHTMLに戻りますか?XML文法を放棄しますか?なぜXHTML 2.0について誰も話していないのですか?
次のチュートリアルを読む前に、Thymeleafに関するネット記事「From HTML to HTML(via HTML)」を読むことを強くお勧めします.このアドレスを見つけることができます.http://www.thymeleaf.org/doc/articles/fromhtmltohtmlviahtml.html
ThymeleafはJavaライブラリです.XML/XHTML/HTML 5テンプレートエンジンで、変換テンプレートファイルに適用してアプリケーションで生成されたデータとテキストを表示できます.
特にXHTML/HTML 5ベースのウェブサービスアプリケーションに適しており、ウェブまたは独立したアプリケーションとして任意のXMLファイルを処理することができます.
Thymeleafの主な目的は、優雅でフォーマットの良い方法でテンプレートを作成することです.この目標を達成するために、XMLタグの内容に明示的に配置するのではなく、予め定義された論理をXMLのタグと属性に配置する.
インテリジェントキャッシュによってファイルを解析することで、実行中のI/O操作が最小限に抑えられるため、テンプレートを処理する能力が非常に高速です.
どんなテンプレートをThymeleafで作ることができますか?
箱を開けて使用します.Thymeleafでは、テンプレートと呼ばれる6つのテンプレートを処理できます.
以上、フォーマットの良いXMLファイルを提供することができます.Legacy HTML 5を除いて、Legacy HTML 5のいくつかの特徴的な構造はよくありません.例えば、個別のtag(閉じていないtag)、tagのvalueは書いていないか、引用符の間に書いていません.この問題を解決するために、Thymeleafはまずファイルをフォーマットの良いXMLファイルに変換します.
なお、検証はXMLテンプレートとXHTMLテンプレートにのみ使用されます.
しかしながら、これらは唯一のThymeleafで処理可能なテンプレートではなく、ユーザは常に自分のテンプレートを定義することができ、DOMツリーとしてモデリングされても(必ずしもXMLではない)効果的に処理することができる.
方言:標準方言
Thymeleafは、非常に拡張性のあるテンプレートエンジン(実際にはテンプレートエンジンと呼ばれるフレームワーク)であり、テンプレートで処理されるDOMノードと、どのように処理されるかを完全に定義できます.
一定の論理を付与されたDOMノードは処理者と呼ばれ、方言と呼ばれる追加の機能を加えたものであり、Thymeleafのコアライブラリは開梱即用であり、ユーザーのニーズに十分な割合を持つべきものを標準方言と呼ぶ.
このチュートリアルでは、定義された各属性と文法機能を学習する方言が標準方言です.明確に言及しなくても.
もちろん、ユーザーがライブラリの高度なプロパティを使用して自分の処理ロジックを定義したい場合は、ユーザーは自分の方言を作成することができます(標準方言を拡張することもできます).テンプレートエンジンは、複数の方言を一度に同時に構成できます.
公式thymeleaf-spring 3とthymeleaf-spring 4はいずれも「Spring Standard Dialect(spring標準方言)」と定義されており、標準的な方言に相当し、Springフレームワークのいくつかの特性をよりよく利用している(例えば、Spring Expression languageを使用してThymeleafの標準OGLNLの代わりに使用する).Spring MVCのユーザーであれば、時間を無駄にしているわけではありません.ここで勉強しているほとんどの人はSpringアプリケーションで使用されます.
Thymeleaf標準方言は任意のモードでテンプレートを作成することができ、特にユーザーのwebテンプレート(XHTMLとHTML 5の)に適している.HTML 5に加えて、XHTML 1.0 Transitional、XHTML 1.0 Strict、XHTML 1.0 Frameset、XHTML 1.1をサポートしています.
ほとんどの標準方言での処理者はXML属性に基づく処理者である.これにより、ブラウザは、追加のプロパティを簡単に無視するため、処理前にXHTML/HTML 5テンプレートを正しく表示できます.栗を挙げると、JSPがラベルライブラリを使用しているクリップコードがブラウザに直接表示されません.
"userName" value="${user.name}" />
Thymeleaf標準方言では、同じ機能を実現できますが、ブラウザで表示できます.
type="text" name="userName" value="James Carrot" th:value="${user.name}" />
テンプレートが静的ブラウザで開くと、テンプレートは正しく表示されるだけでなく、オプションで値のプロパティ「James Carrot」を指定して表示できます.テンプレートThymeleafが処理されると、${user.name}が正しい値に置き換えられてvalueに表示されます.
必要に応じて、デザイナーと開発者が同じテンプレートファイルで作業し、静的プロトタイプをテンプレートファイルに変換する作業を減らすことができます.これは一般的に「Natural Templating」と呼ばれています.
全体構造
ThymeleafのコアはDOM処理エンジンです.具体的には、標準的なDOM APIではなく、独自の高性能であるDOM実装を使用してテンプレートを構築します.
DOMのテンプレートを使用する方法は、Webドキュメントが通常オブジェクトツリーとして表示されるため、Webアプリケーションに適しています(実際にはDOMツリーはブラウザがWebページをメモリに存在させる方法です).同時に、ほとんどのウェブアプリケーションでは1つの数十個のテンプレートしか使用されていません.これらは大きなファイルではありません.アプリケーションの実行時には、通常変更されません.Thymeleafは、ほとんどのテンプレート処理操作にキャッシュを使用しています.これにより、I/Oが少ないだけです(もしあれば).
詳細については、後でこのチュートリアルでキャッシュについて説明します.
しかし、他のテンプレートの解析/処理方法に比べて、このアーキテクチャはテンプレートを実行するためにより大きなメモリ領域を使用する必要があります.これは、Webファイルではなく、大きなデータを作成するXMLドキュメントを使用するべきではないことを意味します.一般的な経験(JVMのメモリサイズによる)では、単一のXMLファイルサイズを数十メガバイトで生成する場合は、Thymeleafを使用しないことをお勧めします.
さらに議論する前に読むべきです
Thymeleafは特にwebアプリケーションで動作するのに適しています.彼らはすべて一連のすべての人がよく知っている基準に基づいて、たとえ彼らが何年も使っても.
HTML 5が登場するにつれて、Web標準はこれまで以上に困惑しています...XHTMLからHTMLに戻りますか?XML文法を放棄しますか?なぜXHTML 2.0について誰も話していないのですか?
次のチュートリアルを読む前に、Thymeleafに関するネット記事「From HTML to HTML(via HTML)」を読むことを強くお勧めします.このアドレスを見つけることができます.http://www.thymeleaf.org/doc/articles/fromhtmltohtmlviahtml.html