カテゴリ: Thymeleaf 更新日: 2026/03/22

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

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

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

生徒

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

先生

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

生徒

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

先生

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

1. #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には、指定した範囲だけを取り出す#lists.slice(list, from, to)があります。 ここでのfromtoは「0から始まる番号」で、終端のtoも含まれるのがポイントです。 まずは「先頭から3件だけ」を表示する最小サンプルで感覚をつかみましょう。


<ul>
    <!-- 0,1,2番目=先頭から3件を切り出して表示 -->
    <li th:each="item : ${#lists.slice(myList, 0, 2)}" th:text="${item}">サンプル</li>
</ul>

途中の一部分だけを見たいときも同じ考え方です。次の例では、2〜4番目の3件を取り出しています。 取り出した要素に連番を付けたい場合は、イテレーションステータスを併用すると分かりやすくなります。


<ul>
    <!-- 2,3,4番目を切り出し。stat.indexで0始まりの番号を取得 -->
    <li th:each="item, stat : ${#lists.slice(myList, 2, 4)}">
        <span th:text="${stat.index}">0</span> : <span th:text="${item}">サンプル</span>
    </li>
</ul>

件数が少ない場合に「存在しない範囲」を指定すると分かりにくくなりがちです。 そのときは、サイズに合わせて終端を調整すると安全です(size-1が末尾の番号)。 空リストの場合はメッセージを出すように分岐しておくと親切です。



表示できるデータがありません。

  • サンプル

このようにsliceを使うと、一覧の「先頭だけ」「途中だけ」「最大N件まで」といった切り出しが コントローラの追加実装なしで表現できます。まずは先頭数件の表示から試して、必要に応じて範囲を調整してみてください。

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

「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を使えば、リストに含まれる要素の数を簡単に取得し表示できます。

Thymeleafでリストの最初と最後の要素を表示するにはどうすればいいですか?

#lists.firstでリストの最初の要素、#lists.lastで最後の要素を取得できます。リストが空の場合はnullが返されます。
カテゴリの一覧へ
新着記事
New1
Spring
Spring Securityの新標準!SecurityFilterChainとHttpSecurity DSLの書き方を初心者向けに解説
更新記事
New2
Java
Javaの抽象クラス(abstract)を完全ガイド!継承と設計のルールを学ぶ
更新記事
New3
Servlet
JavaのGenericServletクラスのgetInitParameterNamesメソッドを徹底解説!初心者でもわかる初期化パラメータの取得方法
更新記事
New4
JSP
JSPとは何か?初心者向けにできること・仕組み・特徴をやさしく解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Servlet
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.3
Java&Spring記事人気No3
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.4
Java&Spring記事人気No4
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.5
Java&Spring記事人気No5
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.6
Java&Spring記事人気No6
Java
Java開発環境「Eclipse(Pleiades)」のインストール方法とメリットを初心者向けに解説
No.7
Java&Spring記事人気No7
Spring
Spring BootとVS Codeで開発を始めよう!拡張機能・launch.json・ホットリロードを丁寧に解説
No.8
Java&Spring記事人気No8
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門