libro
www.tuyano.com
初心者のためのSpring Bootプログラミング入門

Thymeleafテンプレートエンジンの主な機能 (4/4)

作成:2015-05-02 08:55
更新:2015-05-02 08:55

■ユーティリティオブジェクトについて

Thymeleafには、表示の際の処理を助けてくれる「ユーティリティオブジェクト」と呼ばれるものが用意されています。これを使うことで、ちょっとした処理は(コントローラー側であらかじめ処理をしておかなくとも)ビュー内で処理させることができます。

このユーティリティオブジェクトは、「#○○」といった形で記述されます。用意されているユーティリティオブジェクトはこんな感じです。

#dates――java.util.Date用のユーティリティ。
#calendars――java.util.Calendar用のユーティリティ。
#numbers――数値オブジェクト用のユーティリティ。
#strings――Stringオブジェクト用のユーティリティ。
#objects――オブジェクト一般のユーティリティ。
#bools――真偽値用のユーティリティメソッド。
#arrays――配列用のユーティリティメソッド。
#lists――リスト用のユーティリティメソッド。
#sets――セット用のユーティリティメソッド。
#maps――マップ用のユーティリティメソッド。
#aggregates――コレクション処理用ユーティリティ。
#messages――外部からのメッセージを取り扱うためのユーティリティ。
#ids――繰り返しでid属性を扱うためのユーティリティ。

これだけ見ても使い方はわからないでしょうから、一番使えそうな「#calendars」を使った例を挙げておきましょう。ビューに以下のような形でタグを書いてみてください。
<p class="msg" th:text="${#calendars.format(#calendars.createNow(),
         'yyyy年MM月dd日')}" />
これを実行すると、現在の年月日が表示されます。特に日時のための処理などはコントローラー側にはないのに、ビュー内で必要な処理をしているのです。ここでは、#calendarsにある以下のようなメソッドを呼び出して処理を行っています。

createNow――現在の日時を表すCalendaraインスタンスを作成します。
format――第1引数のCalendarインスタンスを第2引数のフォーマットパターンでフォーマットしたテキストを返します。

この2つのメソッドを使うだけで、現在の日付を指定のパターンでフォーマットし表示できるようになります。

ユーティリティメソッドのリファレンスは以下にありますので、どんな機能が用意されているか調べてみると面白いでしょう。

http://www.thymeleaf.org/apidocs/thymeleaf/2.1.4.RELEASE/org/thymeleaf/expression/package-summary.html

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

<p class="msg" th:text="${#calendars.format(#calendars.createNow(),
         'yyyy年MM月dd日')}" />

※関連コンテンツ

「初心者のためのSpring Bootプログラミング入門」に戻る