Thymeleafでユーティリティオブジェクトを使用する
当サイトはアフィリエイト広告を利用しています。
Thymeleafを書籍で学びたい方やThymeleafと一緒にSpringも習得したい方におすすめな書籍です。
Springについての書籍ですが、Thymeleafの基本構文や他システムとの連携など30ページほど取り上げられています。
ThymeleafとSpringは親和性の高い技術なので、これを機にSpringを学んでみるのはいかがでしょうか?
実行環境
実行環境がない方は、こちらの記事を参考にしてください。
項目 | バージョン |
---|---|
OS | macOS Catalina |
JDK | Oracle JDK@8 |
Thymeleaf | 3.1 |
Thymeleafでユーティリティオブジェクトを使用する
ユーティリティオブジェクトはテンプレート内で使用できるメソッドです。ここでは、比較的使用頻度が高い以下のユーティリティオブジェクトを紹介します。
- #dates
- #numbers
- #strings
- #lists
#dates
日付 java.util.Date
オブジェクト用のユーティリティオブジェクトです。
現在日時の日付オブジェクトを作成したり、指定されたパターンで日付をフォーマットしたりすることができます。
${#dates.createNow()}
現在日時の日付オブジェクトを作成します。
<span th:text="${#dates.createNow()}"></span>
Sat May 16 00:00:00 JST 2020
${#dates.format(date, ‘yyyy/MM/dd HH:mm:ss’)}
指定されたパターンで日付をフォーマットします。
<span th:text="${#dates.format(#dates.createNow(), 'yyyy/MM/dd HH:mm:ss')}"></span>
2020/05/16 00:00:00
#numbers
数値オブジェクト用のユーティリティオブジェクトです。
千の位の区切り文字を設定したり、シーケンスを作成することができます。
${#numbers.formatInteger(number, 3, ‘COMMA’)}
整数の最小桁数と千の位の区切り文字を設定します。
区切り文字は POINT
, COMMA
, WHITESPACE
, NONE
, DEFAULT
が使用できます。
<span th:text="${#numbers.formatInteger(1000, 3, 'POINT')}"></span>
<span th:text="${#numbers.formatInteger(1000, 3, 'COMMA')}"></span>
<span th:text="${#numbers.formatInteger(1000, 3, 'WHITESPACE')}"></span>
<span th:text="${#numbers.formatInteger(1000, 3, 'NONE')}"></span>
<span th:text="${#numbers.formatInteger(1000, 3, 'DEFAULT')}"></span>
1.000
1,000
1 000
1000
1,000
${#numbers.sequence(from, to)}
from
から to
までの整数のシーケンス (配列) を作成します。こちらの記事で使用しています。
<th:block th:each="i : ${#numbers.sequence(1, 3)}">
<span th:text="${i}"></span>
</th:block>
1
2
3
#strings
文字列 String
オブジェクト用のユーティリティオブジェクトです。
文字列が空またはnullかどうかや文字列に指定した文字が含まれているかをチェックすることができます。
${#strings.isEmpty(string)}
文字列が空またはnullかをチェックします。チェック前に trim()
を行います。
<span th:text="${#strings.isEmpty('text')}"></span>
<span th:text="${#strings.isEmpty(' ')}"></span>
false
true
${#strings.length(string)}
文字列の長さを計算します。空文字もカウントされます。
<span th:text="${#strings.length('text')}"></span>
<span th:text="${#strings.length('文字列')}"></span>
<span th:text="${#strings.length(' ')}"></span>
<span th:text="${#strings.length('')}"></span>
4
3
1
0
${#strings.equals(first, second)}
文字列 first
と second
をnullセーフで比較します。
<span th:text="${#strings.equals('text', 'text')}"></span>
<span th:text="${#strings.equals('text', '文字列')}"></span>
true
false
${#strings.contains(first, second)}
文字列 first
に second
が含まれているかをチェックします。
<span th:text="${#strings.contains('text', 'ex')}"></span>
<span th:text="${#strings.contains('text 文字列', ' ')}"></span>
<span th:text="${#strings.contains('text 文字列', '+')}"></span>
true
true
false
#lists
リスト用のユーティリティオブジェクトです。
リストが空かをチェックしたり、リストの要素の数を計算することができます。
${#lists.isEmpty(list)}
リストが空かをチェックします。
<span th:text="${#lists.isEmpty(list)}"></span>
<span th:text="${#lists.isEmpty(#numbers.sequence(1, 3))}"></span>
true
false
${#lists.size(list)}
リストのサイズを計算します。
<span th:text="${#lists.size(#numbers.sequence(1, 3))}"></span>
3
${#lists.contains(list, element)}
リストに element
が含まれているかをチェックします。
<span th:text="${#lists.contains(#numbers.sequence(1, 3), 1)}"></span>
<span th:text="${#lists.contains(#numbers.sequence(1, 3), 5)}"></span>
true
false
お疲れさまでした
Thymeleafでユーティリティオブジェクトを使用する方法を紹介しました。
少しでも参考になれば幸いです。