Spring and Thymeleaf 3:式
1. 前書き
Thymeleafは、HTML、XML、JavaScript、CSS、およびプレーンテキストを処理および作成するためのJavaテンプレートエンジンです。 ThymeleafとSpringの紹介については、this write-upをご覧ください。
これらの基本機能に加えて、Thymeleafは、アプリケーションで一般的なタスクを実行するのに役立つユーティリティオブジェクトのセットを提供します。
この記事では、Thymeleaf 3.0のコア機能であるSpringMVCアプリケーションの式ユーティリティオブジェクトについて説明します。 具体的には、日付、カレンダー、文字列、オブジェクトなどの処理のトピックについて説明します。
2. Mavenの依存関係
最初に、ThymeleafとSpringを統合するために必要な構成を見てみましょう。 依存関係にはthymeleaf-springライブラリが必要です。
org.thymeleaf
thymeleaf
3.0.9.RELEASE
org.thymeleaf
thymeleaf-spring5
3.0.9.RELEASE
Spring 4プロジェクトの場合、thymeleaf-spring5の代わりにthymeleaf-spring4ライブラリを使用する必要があることに注意してください。 依存関係の最新バージョンはhereにあります。
3. 式ユーティリティオブジェクト
この記事の中心的な焦点を見る前に、一歩下がってWebアプリプロジェクトでThymeleaf 3.0を構成する方法を確認したい場合は、このtutorialを見てください。
今回の記事では、SpringコントローラーとHTMLファイルを作成して、これから説明するすべての機能をテストしました。 以下は、利用可能なヘルパーオブジェクトとその機能の完全なリストです。
-
#dates:java.util.Dateオブジェクトのユーティリティメソッド
-
#calendars:#datesと同様、java.util.Calendarオブジェクトに使用
-
#numbers:数値オブジェクトをフォーマットするためのユーティリティメソッド
-
#strings:Stringオブジェクトのユーティリティメソッド
-
#objects:一般的なJavaObjectクラスのユーティリティメソッド
-
#bools:boolean評価のためのユーティリティメソッド
-
#arrays:配列のユーティリティメソッド
-
#lists:リストのユーティリティメソッド
-
#sets:セットのユーティリティメソッド
-
#maps:マップのユーティリティメソッド
-
#aggregates:配列またはコレクションに集計を作成するためのユーティリティメソッド
-
#messages:変数式内の外部化されたメッセージを取得するためのユーティリティメソッド
3.1. 日付オブジェクト
ここで説明する最初の関数は、java.util.Dateオブジェクトの処理です。 dateの処理を担当する式ユーティリティオブジェクトは、#dates.functionName().で始まります。最初に取り上げる関数は、Dateオブジェクト(Springモデルパラメータに追加される)のフォーマットです。
ISO8601形式を使用するとします。
dateがバックエンド側でどのように設定されていても、この標準に従って表示する必要があります。 さらに、形式を具体的にしたい場合は、手動で指定できます。
この関数は、パラメーターとして2つの変数(Dateとその形式)を取ります。
最後に、使用できる同様に便利な関数をいくつか示します。
最初に、曜日の名前を受け取り、2番目に、新しいDateオブジェクトを作成し、最後に、時刻を00:00に設定して新しいDateを作成します。 。
3.2. カレンダーオブジェクト
カレンダーユーティリティは、java.util.Calendarオブジェクトのインスタンスを使用していることを除いて、日付処理と非常によく似ています。
唯一の違いは、新しいCalendarインスタンスを作成する場合です。
要求されたデータを取得するために、任意のCalendarクラスメソッドを使用する場合があることに注意してください。
3.3. 数値処理
もう1つの非常に便利な機能は、数値処理です。 doubleタイプでランダムに作成されたnum変数に焦点を当てましょう。
最初の行では、最小整数桁と正確な10進数を設定して10進数をフォーマットします。 2番目の例では、整数と小数点に加えて、小数点を指定しました。 オプションは、POINT、COMMA、WHITESPACE、NONE、またはDEFAULT(ロケール別)です。
この段落では、もう1つの機能を示します。 整数のシーケンスの作成です:
最初の例では、Thymeleafに0〜2のシーケンスを生成させましたが、2番目の例では、最小値と最大値に加えて、ステップの定義を提供しました(この例では、値は2ずつ変化します)。
間隔は両側で閉じられていることに注意してください。
3.4. 文字列操作
これは、式ユーティリティオブジェクトの最も包括的な機能です。
空のオブジェクトまたはnullStringオブジェクトをチェックするユーティリティから説明を開始できます。 多くの場合、開発者はThymeleafタグ内でJavaメソッドを使用してこれを実行しますが、これはnullオブジェクトにとって安全ではない可能性があります。
代わりに、これを行うことができます。
最初のStringは空ではないため、メソッドはfalse.を返します。2番目のStringはnullであるため、trueを取得します。 最後に、Stringが空になる場合は、#strings.defaultString(…)メソッドを使用してデフォルト値を指定できます。
さらに多くの方法があります。 それらはすべて、文字列だけでなくJava.Collections.でも機能します。たとえば、部分文字列関連の操作を使用するには、次のようにします。
またはnullセーフな比較と連結を使用するには:
最後に、テキストスタイルに関連する機能があります。これにより、常に同じ構文が保持されます。
最初の方法では、省略されたテキストにより、最大サイズはnになります。 テキストが大きい場合、切り取られて「€」で終了します。
2番目の方法では、単語を大文字にします。
3.5. 集計
ここで説明したい最後の関数はaggregatesです。 これらはnullで安全であり、配列またはその他のコレクションから平均または合計を計算するユーティリティを提供します。
4. 結論
この記事では、Thymeleafフレームワークバージョン3.0に実装されているExpression Utility Objects機能について説明しました。
このチュートリアルの完全な実装は、the GitHub projectにあります。
How to test?最初にブラウザーで遊んでから、既存のJUnitテストも確認することをお勧めします。
例は、利用可能なすべてのユーティリティ式を網羅しているわけではないことに注意してください。 すべてのタイプのユーティリティについて知りたい場合は、hereを参照してください。