ホーム>技術

Thymeleafのユーティリティオブジェクト4選

当サイトはアフィリエイト広告を利用しています。

目次

効率的なJava学習サービスの探し方をご存知ですか?

Javaを学習したいけれどどの学習サービスを選べば良いか分からないという悩みを抱えていませんか?
Javaは市場価値が高い為、学習サービスを提供しているものも多く、条件に合うものを見つけるのに苦労しますよね。
以下の記事ではJavaを入門レベルから勉強できるおすすめ学習サービスをご紹介しています。
Spring FrameworkやThymeleafがカリキュラムに含まれているものがあるので、ぜひ参考にしてください!

Javaを入門レベルから勉強できるおすすめ学習サービス7選

Thymeleafのユーティリティオブジェクト4選

今回は、Thymeleafのユーティリティオブジェクト4選をご紹介します。

ユーティリティオブジェクトはThymeleafにあらかじめ用意されている関数のようなものです。使用することでコーディング時間を大幅に短縮することができるので、ぜひ参考にしてください。

当記事では、比較的使用頻度が高い以下のユーティリティオブジェクトをご紹介します。

  • #strings(文字列)
  • #numbers(数値)
  • #dates(日付)
  • #lists(リスト)

#strings(文字列)

文字列オブジェクト用のユーティリティオブジェクトです。
対象の文字列が空文字かどうかや文字列に特定の文字が含まれているか等を判定することができます。

${#strings.toString(object)}

引数で受け取ったオブジェクトにnullセーフで toString() を行います。

<!-- 入力 -->
${#strings.toString(obj)}

<!-- 出力 -->
string型のobj

${#strings.isEmpty(string)}

引数で受け取った文字列がnullまたは空文字かをチェックします。

<!-- 入力 -->
<p th:text="${#strings.isEmpty('空文字ですか?')}"></p>
<p th:text="${#strings.isEmpty(' ')}"></p>

<!-- 出力 -->
false
true

${#strings.equals(string, string)}

引数で受け取った文字列をnullセーフで比較します。

<!-- 入力 -->
<p th:text="${#strings.equals('りんご', 'りんご')}"></p>
<p th:text="${#strings.equals('りんご', 'バナナ')}"></p>

<!-- 出力 -->
true
false

${#strings.contains(string, string)}

引数で受け取った文字列に特定の文字が含まれているかどうかをチェックします。

<!-- 入力 -->
<p th:text="${#strings.contains('apple', 'le')}"></p>
<p th:text="${#strings.contains('apple', '')}"></p>
<p th:text="${#strings.contains('apple pie', ' ')}"></p>
<p th:text="${#strings.contains('applepie', ' ')}"></p>

<!-- 出力 -->
true
true
true
false

${#strings.length(string)}

引数で受け取った文字列の長さを計算します。

<!-- 入力 -->
<p th:text="${#strings.length('apple')}"></p>
<p th:text="${#strings.length(' ')}"></p>
<p th:text="${#strings.length('')}"></p>

<!-- 出力 -->
5
1
0

#numbers(数値)

数値オブジェクト用のユーティリティオブジェクトです。
対象の数値をカンマ区切りにしたりシーケンスを作成することができます。

${#numbers.formatInteger(number, 3, ‘COMMA’)}

引数で受け取った数値の整数の最小桁数と千の位の区切り文字を設定します。
区切り文字は POINT COMMA WHITESPACE NONE または DEFAULT が使用できます。

<!-- 入力 -->
<p th:text="${#numbers.formatInteger(1000, 3, 'POINT')}"></p>
<p th:text="${#numbers.formatInteger(1000, 3, 'COMMA')}"></p>
<p th:text="${#numbers.formatInteger(1000, 3, 'WHITESPACE')}"></p>

<!-- 出力 -->
1.000
1,000
1 000

${#numbers.sequence(from, to)}

引数で受け取った数値fromからtoまでの整数のシーケンスを作成します。
使用例については、以下の記事で紹介しているので参考にしてください。

Thymeleafで繰り返し文th:eachを使用する方法

#dates(日付)

日付オブジェクト用のユーティリティオブジェクトです。
現在日時を取得したり引数で受け取った日時を特定のフォーマットに変換することができます。

${#dates.createNow()}

現在日時の日付オブジェクトを作成します。

<!-- 入力 -->
<p th:text="${#dates.createNow()}"></p>

<!-- 出力 -->
Sat May 16 00:00:00 JST 2020

${#dates.format(date, ‘yyyy/MM/dd HH:mm’)}

引数で受け取った日時を指定されたパターンでフォーマットします。

<!-- 入力 -->
<p th:text="${#dates.format(#dates.createNow(), 'yyyy/MM/dd HH:mm')}"></p>

<!-- 出力 -->
2020/05/16 00:00

#lists(リスト)

リスト用のユーティリティオブジェクトです。
対象のリストが空かどうかやリストの要素の数等を取得することができます。

${#lists.isEmpty(list)}

引数で受け取ったリストが空かどうかをチェックします。

<!-- 入力 -->
<p th:text="${#lists.isEmpty(list)}"></p>

<!-- 出力 -->
false

${#lists.size(list)}

引数で受け取ったリストのサイズを計算します。

<!-- 入力 -->
<p th:text="${#lists.size(list)}"></p>

<!-- 出力 -->
5

${#lists.contains(list, element)}

引数で受け取ったリストに特定の要素が含まれているかどうかをチェックします。

<!-- 入力 -->
<p th:text="${#lists.contains(list, element)}"></p>

<!-- 出力 -->
true

お疲れさまでした

今回は、Thymeleafのユーティリティオブジェクト4選をご紹介しました。
少しでも参考になれば幸いです。

ThymeleafとSpringを一度に学びたくありませんか?

以下の書籍は、Thymeleafを書籍で学びたい人やThymeleafと併せてSpring Frameworkを学習したい人におすすめしている書籍です。
Springについての書籍ですが、Thymeleafの基礎や基本構文から他システムとの連携等30ページほど取り上げられており、ThymeleafとSpringを一度に学べる書籍になっています。
ぜひ一度手に取ってみてください。

どんな記事が読みたいですか?

現在、ミルラクでは記事に関するアンケートを実施しています。
ご回答いただいた内容は今後の記事の役立てていきますので、ぜひご回答ください!