Thymeleafのユーティリティオブジェクトとは?初心者にもわかる活用ガイド

こんにちは。ゆうせいです。

今回は、Javaのテンプレートエンジン「Thymeleaf(タイムリーフ)」でよく使われるユーティリティオブジェクトについて解説します。

「ユーティリティオブジェクトって何?」「どんなことができるの?」と疑問に思っていませんか?

この記事では、Thymeleaf初心者でも理解できるよう、丁寧にユーティリティオブジェクトの種類や使い方を解説していきます!


ユーティリティオブジェクトとは?

ざっくり言うと「便利関数の詰め合わせ」

ユーティリティオブジェクトとは、Thymeleafテンプレート内でよく使う処理を簡単に書けるようにするオブジェクトです。

たとえば、日付のフォーマット、文字列操作、コレクション(リストやマップ)の操作、条件分岐など、テンプレートで頻繁に登場する操作をJavaコードを書かずに扱えます。


よく使うユーティリティオブジェクト一覧

Thymeleafには、以下のようなユーティリティオブジェクトが最初から用意されています。

オブジェクト名内容(ざっくり)主な用途の例
${#strings}文字列操作長さ取得、切り取り、空チェック
${#dates}日付操作日付のフォーマットや加算
${#calendars}カレンダー操作曜日や月の情報取得
${#numbers}数値フォーマット桁区切りや通貨フォーマット
${#bools}真偽値処理true/falseのチェック
${#lists}リスト処理空チェック、追加、ソートなど
${#maps}Mapの操作キーや値の取得
${#arrays}配列操作長さや要素の取得
${#objects}nullチェック等型判定、null安全
${#messages}メッセージ取得i18n(国際化)対応文字列取得
${#uris}URI操作URLエンコードなど
${#ids}ID生成ランダムIDの生成

ユーティリティオブジェクトの使い方

文字列操作(${#strings}

<p th:text="${#strings.toUpperCase('hello')}"></p>

これは、「hello」を大文字に変換して表示します。

よく使う関数

関数名説明
isEmpty(str)空かどうか判定
toUpperCase(str)大文字変換
toLowerCase(str)小文字変換
substring(str, start, end)部分文字列

日付操作(${#dates}

<span th:text="${#dates.format(today, 'yyyy/MM/dd')}"></span>

JavaのDateやLocalDateを「2025/06/16」のようなフォーマットで出力します。


リスト操作(${#lists}

<ul>
  <li th:each="item : ${#lists.sort(items)}" th:text="${item}"></li>
</ul>

リスト itemsソートして表示しています。


数式の例もチェック!

ユーティリティオブジェクトの中では、数値操作もよく登場します。

${#numbers.formatDecimal(...)}

<span th:text="${#numbers.formatDecimal(12345.6789, 1, 2)}"></span>

この例では、「12,345.68」のような形に数値をフォーマットします。

数式で見るとこうです:

  • 数値フォーマット:
    • formatDecimal(数値, 最小小数点以下桁数, 最大小数点以下桁数)
    • formatDecimal(12345.6789, 1, 2) → 「12,345.68」

メリットとデメリットを整理しよう

メリット

  • Javaコードを書かなくても複雑な処理ができる
  • 可読性が上がり、テンプレートが整理される
  • 開発効率が向上する

デメリット

  • 多用しすぎるとテンプレートが複雑になる
  • Javaのロジックとテンプレートの責任が曖昧になりやすい
  • 他のテンプレートエンジンと比較して学習コストが少し高い


まとめと今後の学習の指針

Thymeleafのユーティリティオブジェクトを使えば、テンプレート開発がグッと楽になります。

「こういうことできるかな?」と思ったときには、まずユーティリティオブジェクトの中にそれをやる関数がないか探してみるのがオススメです。

今後は以下の学習に進んでみましょう!

  1. 公式ドキュメントで関数を確認する
  2. th:ifth:eachと組み合わせて使ってみる
  3. カスタムユーティリティオブジェクトの作り方を学ぶ

Thymeleafは、書けば書くほど使いやすさが実感できるテンプレートエンジンです。ぜひたくさん触って慣れていきましょう!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。