1つの導入Thymeleaf
何1.1 Thymeleafこと?
Thymeleafは、近代的なサーバーサイドJavaのテンプレートエンジンのウェブと独立した環境、HTML、XML、JavaScriptやCSSを扱うことができ、さらにはプレーンテキストです。
Thymeleaf主な目標は、テンプレートを作成するには、エレガントで、非常に保守方法を提供することです。これを達成するためには、プロトタイプのロジックへの道は、テンプレートファイルを注入するために使用されるように、テンプレートに影響を与えないように、自然のテンプレートの概念に基づいて構築されています。これはデザインの、そして橋を建設し、設計と開発チーム間の交流を向上させます。
ThymeleafはWeb標準を考慮することが最初から設計された - あなたがそれを必要とする場合、特にHTML5--は、あなたが完全に検証テンプレートを作成することができます。
1.2 Thymeleafのテンプレートの種類を扱うことができますか?
箱から出して、Thymeleafは、テンプレートモードとして知られているそれぞれのテンプレートの6種類に対処することができます:
- HTML
- XML
- テキスト
- JAVASCRIPT
- CSS
- 生
テンプレート(HTMLやXML)をマークする二つのモード、3つのテキストテンプレートモード(テキスト、JavaScriptとCSS)テンプレートと非動作モード(RAW)があります。
HTMLテンプレートモードはHTML5、HTML 4およびXHTMLを含む、HTMLの入力のいずれかのタイプを許可します。任意の検証を実行したり、ウェルフォーマットを確認し、そしてコードが出力としてテンプレート/構造を尊重しないであろう。
XMLテンプレートモードは、XML入力が可能になります。この場合、コードは整形式でなければなりません - などなしに閉じられていないタグ、未参照財産、 - あなたは違反の良い形式を見つけた場合、パーサは例外をスローします。注(DTDまたはXMLスキーマに対して)検証を一切行いません。
テキストテンプレートモードは、テンプレートは不使用の特殊な構文の性質をマークすることができます。そのようなテンプレートの例としては、テキストまたは電子メールテンプレートドキュメントかもしれません。注、HTML、またはXMLテンプレートは、テキストとして扱うことができ、その場合には、彼らはトークンに解析されません、というように各トークン、DOCTYPE、コメントとは、プレーンテキストとして扱われます。
JAVASCRIPT JAVASCRIPTテンプレートモードでは、文書Thymeleafアプリケーションを処理できるようになります。これは、HTMLファイル内のJavaScriptファイル内のデータと同じモデルを使用するが、そのような特殊なエスケープや自然のスクリプトとして、統合されたJavaScript固有を使用することができること。JAVASCRIPTのテンプレートモードがテキストモードなので、同じ特別な構文とテキストテンプレートモードと考えられています。
CSSテンプレートモードは、CSSファイルThymeleaf処理アプリケーションが関与できるようになります。同様に、CSSのテンプレートモードでJAVASCRIPTモデルは、テキストモードで、構文テンプレートテキストモードから特別な処理を使用しています。
オリジナルのテンプレートモードは、テンプレートを処理しません。テンプレートが処理されているに達しない使用済みのリソース(ファイル、URL、応答など)です。たとえば、外部HTML形式制御されていないリソース、アプリケーションテンプレートに、これらのリソースはThymeleafを含有してもよいことが任意のコードが実行されないことを確認してください。
1.3方言:標準の方言
Thymeleafはあなたのテンプレートは、詳細の細かいレベルに扱われる方法を定義し、カスタマイズすることができます非常に拡張可能なテンプレートエンジン(実際にはテンプレートエンジンフレームワークと呼ばれることができる)、です。
加えて、いくつかの追加作業 - - ワークマークするためにいくつかのロジック、これらのセットハンドラオブジェクトハンドラと呼ばれている(タグ、テキスト、コメント、テンプレートが標識されていない場合は、それが唯一のプレースホルダがある)通常の方言コンポーネント。Thymeleafのコアライブラリは、ほとんどのユーザーのために十分なものでなければならない標準の方言と呼ばれる方言を提供しています。
なお、方言は実際のプロセッサ、および完全にからなるワークピースの他のタイプのではないかもしれないが、プロセッサは間違いなく最も一般的な使用例です。
このチュートリアルでは、標準的な方言を説明しています。以下のページでは、あなたがこの方言から学びます各属性の構文と機能は、明示的に言及していない場合でも、定義されています。
あなたは、ライブラリの高度な機能の同じ時間テイク利点で独自の処理ロジックを定義したい場合はもちろん、ユーザーが自分の方言を(たとえ標準方言を拡張)を作成することができます。Thymeleafはまた、いくつかの方言を使用するように構成することができます。
公式thymeleaf-spring3とthymeleaf-spring4統合パッケージは、同じ標準方言のほとんど、「SpringStandard方言」と呼ばれる方言を定義しますが、少し(例えば、春の式言語を使用して、Springフレームワークの一部の機能を使用することをお勧めし適応します代わりに、OGNLまたは画像)を発揮します。あなたはSpring MVCのユーザーであれば、ほぼすべてのあなたがここで何を学ぶのは、Springアプリケーションで使用されるので、だから、あなたは、時間を無駄にしません。
ほとんどのプロセッサは、標準的な方言属性プロセッサです。彼らは単に追加の属性を無視するので、これは、ブラウザが処理する前に、正しいHTMLテンプレートファイルを表示することができます。たとえば、サーブレットには、JSPタグライブラリを使用するdirectlyなど、ブラウザで表示することができないコードの一部を含むことができます。
<form:inputText name="userName" value="${user.name}" />
Thymeleaf標準方言は、私たちは同じ機能を実現することができます:
<input type="text" name="userName" value="James Carrot" th:value="${user.name}" />
これができるだけでなく、正しくブラウザに表示されますが、私たちはまた、(オプション)(この場合には、「ジェームズ・キャロット」)プロパティの値を指定でき、プロセス・テンプレートの間に、ブラウザで開いたときに静的に表示されますプロトタイプそれは置き換えられます${user.name}
。
これは、デザイナーと開発者が作業を必要として働いてテンプレートファイルを減らすために、同じテンプレートファイルと変換の静的プロトタイプに対処するのに役立ちます。いわゆる自然のテンプレートをすることができません。
2偉大な仮想食料雑貨店を設計します
ソースコードサンプル、および本書の以降の章でもよく、本明細書に示さ良いThymes仮想食料品GitHubのリポジトリ。
2.1食料品店サイト
より良い関係テンプレートThymeleafプロセスを使用しての概念を説明するために、このチュートリアルでは、プロジェクトのWebサイトからダウンロードできるデモアプリケーションを使用します。
このアプリケーションは、多くの機能Thymeleafを実証するためのシナリオの数を私たちに提供する仮想食料品店のウェブサイトです。
オーダーを作成することによって、顧客への製品の売上高:まず、私たちのアプリケーションは、モデルエンティティの簡単なセットを必要とします。また、これらの製品の管理を見直します。