カテゴリ: Thymeleaf 更新日: 2025/06/27

Thymeleafのth:caseを完全ガイド!初心者でもわかる条件分岐の書き方

Thymeleafのth:caseの使い方
Thymeleafのth:caseの使い方

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

生徒

「Thymeleafで複数の条件分岐をしたい場合、どんな書き方がありますか?」

先生

「Thymeleafではth:switchth:caseを使うと、複数の条件分岐を簡単に書くことができます。」

生徒

「なるほど!th:caseの具体的な使い方を教えてください。」

先生

「それでは、Thymeleafのth:caseの使い方を具体的に見ていきましょう!」

1. th:caseとは?

1. th:caseとは?
1. th:caseとは?

Thymeleafのth:caseは、th:switchと組み合わせて使用することで、複数の条件に基づいて表示内容を切り替えることができます。これは、Javaのswitch-case文と似た構文で、特定の値に応じて異なるHTML要素を表示する際に便利です。

例えば、ユーザーの役割に応じて表示内容を変える場合、以下のように記述します。


<div th:switch="${user.role}">
    <p th:case="'ADMIN'">管理者ページ</p>
    <p th:case="'USER'">ユーザーページ</p>
    <p th:case="*">ゲストページ</p>
</div>

この例では、user.roleの値が"ADMIN"の場合は「管理者ページ」、"USER"の場合は「ユーザーページ」、それ以外の場合は「ゲストページ」と表示されます。

2. th:caseの基本的な使い方

2. th:caseの基本的な使い方
2. th:caseの基本的な使い方

th:caseは、th:switchで指定した変数の値に応じて、表示内容を切り替えるために使用します。各th:caseには、比較する値を指定します。値が一致した場合、その要素が表示されます。

以下は、商品の在庫状況に応じて表示内容を変える例です。


<div th:switch="${product.stockStatus}">
    <p th:case="'IN_STOCK'">在庫あり</p>
    <p th:case="'OUT_OF_STOCK'">在庫なし</p>
    <p th:case="'DISCONTINUED'">販売終了</p>
    <p th:case="*">情報なし</p>
</div>

このように、th:caseを使うことで、複数の条件に対応した表示が可能になります。

3. th:caseの注意点とベストプラクティス

3. th:caseの注意点とベストプラクティス
3. th:caseの注意点とベストプラクティス

th:caseを使用する際の注意点として、以下のポイントがあります。

  • 値の一致は厳密に行われる:比較する値は、文字列の場合はシングルクォートで囲む必要があります。
  • デフォルトケースの指定:どのth:caseにも一致しない場合の表示内容を指定するには、th:case="*"を使用します。
  • 可読性の向上:複数の条件分岐がある場合、th:ifを連続して使用するよりも、th:switchth:caseを使った方がコードの可読性が向上します。

これらのポイントを押さえることで、th:caseを効果的に活用できます。

4. 実践的な例:ユーザーのステータスに応じた表示

4. 実践的な例:ユーザーのステータスに応じた表示
4. 実践的な例:ユーザーのステータスに応じた表示

実際のWebアプリケーションでは、ユーザーのステータスに応じて表示内容を変えることがよくあります。以下は、その一例です。


<div th:switch="${user.status}">
    <p th:case="'ACTIVE'">アクティブユーザー</p>
    <p th:case="'INACTIVE'">非アクティブユーザー</p>
    <p th:case="'BANNED'">利用停止中</p>
    <p th:case="*">ステータス不明</p>
</div>

このように、th:caseを使うことで、ユーザーのステータスに応じた柔軟な表示が可能になります。

5. th:caseと他の条件分岐との使い分け

5. th:caseと他の条件分岐との使い分け
5. th:caseと他の条件分岐との使い分け

Thymeleafには、th:ifth:unlessといった条件分岐のための属性もあります。これらとの使い分けについて理解しておくと、より効果的にテンプレートを構築できます。

  • th:if:単一の条件を評価し、条件が真の場合に要素を表示します。
  • th:unlessth:ifの逆で、条件が偽の場合に要素を表示します。
  • th:switch / th:case:一つの変数に対して複数の値を評価し、それぞれに応じた表示を行います。

複数の条件を評価する場合は、th:switchth:caseを使うと、コードが整理されて可読性が高まります。

6. Javaコードとの連携例

6. Javaコードとの連携例
6. Javaコードとの連携例

Thymeleafのテンプレートは、Javaのコントローラーから渡されたデータを元に表示内容を決定します。以下は、ユーザーのステータスをコントローラーで設定し、テンプレートでth:caseを使って表示を切り替える例です。


@Controller
public class UserController {
    @GetMapping("/user")
    public String getUser(Model model) {
        String status = "ACTIVE";
        model.addAttribute("user", new User(status));
        return "user";
    }
}

このように、JavaコードとThymeleafのテンプレートを連携させることで、動的なWebページを構築できます。

カテゴリの一覧へ
新着記事
Springの@Transactional徹底解説!トランザクションの伝播・分離レベル・タイムアウトの基本
JavaのHashMapクラスgetメソッドの使い方を完全ガイド!初心者でもわかるjava.util入門
Thymeleafのth:fragmentを使ったテンプレートの再利用方法を完全ガイド!初心者でもわかる使い方
Javaの@PathVariableアノテーションの使い方を徹底解説!初心者でもわかるパスパラメータの基本と応用
人気記事
No.1
Java&Spring記事人気No1
Javaのラムダ式で配列を扱う!Arrays.streamの基本と注意点を初心者向けに解説
No.2
Java&Spring記事人気No2
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
No.3
Java&Spring記事人気No3
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.4
Java&Spring記事人気No4
JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作
No.5
Java&Spring記事人気No5
JavaのBigDecimalクラスcompareToメソッド完全ガイド!初心者でもわかる大小比較の基本
No.6
Java&Spring記事人気No6
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.7
Java&Spring記事人気No7
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法
No.8
Java&Spring記事人気No8
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本