カテゴリ: Thymeleaf 更新日: 2026/01/11

Thymeleafの#listsユーティリティの使い方を初心者向けに解説!リスト操作・サイズ取得・要素検索までまとめて紹介

Thymeleafの#listsのユーティリティ
Thymeleafの#listsのユーティリティ

先生と生徒の会話形式で理解しよう

生徒

「Thymeleafのテンプレート内でリストを操作する簡単な方法はありますか?」

先生

「はい!Thymeleafには#listsという便利なユーティリティが用意されています。この機能を使うことで、リストの操作が簡単になりますよ。」

生徒

「リストを操作できると便利そうですね。どんなことができるんですか?」

先生

「それでは、#listsの基本から使い方を具体例を交えて見ていきましょう!」

1. #listsユーティリティの基本

1. #listsユーティリティの基本
1. #listsユーティリティの基本

Thymeleafの#listsは、テンプレート内で「配列・コレクションの扱い」を直感的に書けるユーティリティです。 コントローラで渡したmyListに対して、要素数の取得・先頭や末尾の取得・空判定などを HTMLの中だけで簡潔に表現できます。まずは「サイズ」「空かどうか」「先頭を表示」の3つから始めると理解が早いです。

  • #lists.size(list):要素数を数えます。
  • #lists.isEmpty(list):空リストかを判定します。
  • #lists.first(list) / #lists.last(list):先頭/末尾の要素を取得します。

次の最小サンプルは、画面に件数を出し、空ならメッセージ、あれば先頭要素を表示します。


<!-- 件数の表示 -->
<p>件数:<span th:text="${#lists.size(myList)}">0</span> 件</p>

<!-- 空リストかどうかの分岐 -->
<p th:if="${#lists.isEmpty(myList)}">いま表示できるデータはありません。</p>

<!-- 先頭要素の表示(空でなければ) -->
<p th:if="${!#lists.isEmpty(myList)}">
    最初の要素:<span th:text="${#lists.first(myList)}">サンプル</span>
</p>

まずはこの3点だけ押さえれば、一覧ページや簡単なサマリ表示がすぐに作れます。 余計な条件分岐をJava側に書かなくても、テンプレートだけで分かりやすく表現できるのが#listsの強みです。

2. リストから特定の要素を取得する

2. リストから特定の要素を取得する
2. リストから特定の要素を取得する

#listsを使うと、テンプレートの中だけで「先頭」「末尾」「任意の位置」といった要素を簡単に取り出せます。 コントローラ側で特別な処理を足す必要はありません。まずは最もよく使う「先頭」と「末尾」から見ていきましょう。 空のときはnullになる点だけ覚えておけば安全に扱えます。


<!-- 先頭・末尾をそのまま表示(空のときは空文字にする例) -->
<p>先頭: <span th:text="${#lists.first(myList) ?: ''}"></span></p>
<p>末尾: <span th:text="${#lists.last(myList)  ?: ''}"></span></p>

「特定の位置」を取りたいときは、インデックス指定で1件だけ取り出すこともできます。 例えば0番目(最初)の要素を確実に表示したい場合は、空チェックと組み合わせると分かりやすくなります。


<!-- 任意の位置(0番目)を取り出すサンプル。空ならメッセージ表示 -->
<p th:if="${#lists.isEmpty(myList)}">データがありません。</p>
<p th:if="${!#lists.isEmpty(myList)}">
    0番目の要素: <span th:text="${#lists.first(myList)}">サンプル</span>
</p>

これらを組み合わせれば、「最初だけ強調表示」「最後の更新項目をヘッダーに出す」など、 ちょっとした見せ方をテンプレートの中で完結できます。まずは先頭・末尾の取得を押さえ、 空リスト時の表示を決めておくと、画面づくりが安定します。

3. リストの一部を取得する(サブリスト)

3. リストの一部を取得する(サブリスト)
3. リストの一部を取得する(サブリスト)

#listsでは、リストの一部分を取得することも可能です。例えば、以下のコードはリストの0番目から2番目の要素を取得して表示します。


<ul>
    <li th:each="item : ${#lists.slice(myList, 0, 2)}" th:text="${item}"></li>
</ul>

これにより、リストの一部分だけを表示するテンプレートが簡単に作成できます。

4. リストに特定の要素が含まれているか確認する

4. リストに特定の要素が含まれているか確認する
4. リストに特定の要素が含まれているか確認する

#lists.contains()を使えば、リストに特定の要素が含まれているかを確認できます。以下の例をご覧ください。


<p th:text="${#lists.contains(myList, 'Thymeleaf')} ? '含まれています' : '含まれていません'"></p>

このコードでは、リストに「Thymeleaf」という文字列が含まれている場合に「含まれています」、含まれていない場合に「含まれていません」と表示します。

5. リストを操作する応用例

5. リストを操作する応用例
5. リストを操作する応用例

以下は、リストの操作を組み合わせた応用例です。このコードでは、リストのサイズを表示し、特定の要素が含まれているかを確認し、最後にリストの先頭要素を表示します。


<p>リストのサイズ: <span th:text="${#lists.size(myList)}"></span></p>
<p th:text="${#lists.contains(myList, 'Spring')} ? 'リストにSpringが含まれています' : 'Springは含まれていません'"></p>
<p>リストの最初の要素: <span th:text="${#lists.first(myList)}"></span></p>

これにより、テンプレート内で複雑なリスト操作を簡単に実現することができます。

6. まとめ

6. まとめ
6. まとめ

本記事では、Thymeleafの#listsユーティリティを活用してリスト操作を簡単に行う方法を学びました。#listsを使うことで、リストのサイズを取得したり、特定の要素を取得したり、部分リストを作成することができるようになります。さらに、特定の要素がリストに含まれているか確認する機能もあり、テンプレート内でのリスト操作が非常に柔軟で便利になります。

特に、#lists.first()#lists.last()のようなシンプルなメソッドから、#lists.slice()#lists.contains()といった応用的な操作まで、幅広いニーズに対応しています。また、リスト操作を他のThymeleafユーティリティと組み合わせることで、より複雑な処理も簡単に実現できる点が魅力です。

以下に本記事のサンプルコードを振り返りとして再掲します。これらを参考に、自分のプロジェクトで試してみてください。


<p>リストのサイズ: <span th:text="${#lists.size(myList)}"></span></p>
<p th:text="${#lists.contains(myList, 'Thymeleaf')} ? 'リストにThymeleafが含まれています' : 'Thymeleafは含まれていません'"></p>
<ul>
    <li th:each="item : ${#lists.slice(myList, 0, 2)}" th:text="${item}"></li>
</ul>
<p>リストの最初の要素: <span th:text="${#lists.first(myList)}"></span></p>
<p>リストの最後の要素: <span th:text="${#lists.last(myList)}"></span></p>

これらのコードを実践で使うことで、Thymeleafのテンプレートエンジンの強力さをさらに感じることができるでしょう。

先生と生徒の振り返り会話

生徒

「今回の記事で、Thymeleafの#listsユーティリティの使い方がよくわかりました!リストの操作がこれほど簡単にできるとは思いませんでした。」

先生

「その通りです!リスト操作は多くのWebアプリケーションで必要な機能なので、#listsを使いこなせば、テンプレートのコードを簡潔に保つことができますよ。」

生徒

「はい!次は#listsを他のユーティリティと組み合わせて使ってみます!」

先生

「いいですね!試してみて、また質問があればいつでも聞いてください。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Thymeleafの#listsユーティリティとは何ですか?リスト操作とどう関係していますか?

Thymeleafの#listsユーティリティとは、テンプレート内でリストを簡単に操作するための機能です。リストのサイズ取得、要素の検索、部分リストの作成、要素の存在チェックなどを簡潔に実装できます。

Thymeleafテンプレートでリストのサイズを取得する方法は?

Thymeleafでは#listsユーティリティを使ってリストのサイズを取得できます。たとえば#lists.sizeを使えば、リストに含まれる要素の数を簡単に取得し表示できます。

Springの学習を効率化したい方へ

この記事の内容をもっと深く知るには、以下の入門書が最適です。

Spring Framework超入門をAmazonで見る
カテゴリの一覧へ
新着記事
New1
Spring
SpringDataJPAのJPAクエリメソッド「EndingWith」の使い方を完全ガイド!初心者向け解説
更新記事
New2
Spring
SpringDataJPAのJPAクエリメソッド「StartingWith」の使い方を完全ガイド!初心者向け解説
更新記事
New3
Spring
SpringDataJPAのJPAクエリメソッド「NotLike」の使い方を完全ガイド!初心者向け解説
更新記事
New4
Spring
SpringDataJPAのJPAクエリメソッド「Like」の使い方を完全ガイド!初心者向け解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Java
JavaのBooleanクラスの使い方を完全ガイド!初心者でもわかる真偽値の操作
No.3
Java&Spring記事人気No3
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.4
Java&Spring記事人気No4
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.5
Java&Spring記事人気No5
Spring
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理
No.6
Java&Spring記事人気No6
JSP
JSPでif文・for文を使う方法!初心者でもわかるJavaとの違いと使い方
No.7
Java&Spring記事人気No7
Spring
SpringのModelクラスとaddAttributeメソッドの使い方を完全ガイド!初心者でも安心
No.8
Java&Spring記事人気No8
Spring
SpringDataJPAのJPAクエリメソッド「EndingWith」の使い方を完全ガイド!初心者向け解説