Thymeleafでswitchを使用した実装

Thymeleafでswitchを使用した実装

Thymeleafでswitch文を使いたい場合、Thymeleaf自体にはswitch文に相当する機能は組み込まれていませんが、th:switchとth:caseを使って同様の効果を実現できます。
以下はその使い方の例です。

例: switch文の実装

HTMLテンプレート (Thymeleaf)
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
  <title>Thymeleaf Switch Example</title>
</head>
<body>
  <div th:switch="${status}">
    <p th:case="'SUCCESS'">処理が成功しました。</p>
    <p th:case="'ERROR'">エラーが発生しました。</p>
    <p th:case="'PENDING'">処理中です。</p>
    <p th:case="*">ステータスが不明です。</p>
  </div>
</body>
</html>
コントローラ
@Controller
public class ExampleController {

  @GetMapping("/status")
  public String getStatus(Model model) {
    // ステータスをモデルに追加
    model.addAttribute("status", "SUCCESS"); // ここで「SUCCESS」、「ERROR」、「PENDING」のいずれかを設定する
    return "status"; // Thymeleafテンプレート名
  }
}

説明

  • th:switchはswitch文のように、指定した変数(この例では${status})に基づいて異なるケースを処理します。
  • th:caseは、それぞれのケースに対応する条件を指定します。
  • th:case="*"は、どのケースにも一致しない場合のデフォルトの処理を指定します。

この方法で、Thymeleafテンプレート内で条件分岐を柔軟に扱うことができます。