Thymeleafでunlessを使用した実装

Thymeleafでunlessを使用した実装

unlessを使用して条件付きで内容を表示する方法は、Thymeleafで条件が真でない場合に何かを表示したいときに便利です。
unlessはifの反対で、条件が偽のときに内容を表示します。
以下に例を示します。

例: unlessの基本的な使用法

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
  <title>Unless Example</title>
</head>
<body>
  <div>
    <!-- 変数 isTrue が false のときにメッセージを表示 -->
    <p th:unless="${isTrue}">条件が偽のときに表示されるメッセージです。</p>
  </div>
</body>
</html>

例: unlessとifの組み合わせ

unlessはifと同様にネストできます。
例えば、unless内に別のunlessを使うこともできます。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
  <title>Unless Example</title>
</head>
<body>
  <div>
    <!-- 変数 isTrue が false のときにメッセージを表示 -->
    <p th:unless="${isTrue}">
      条件が偽のときに表示されるメッセージです。
      
      <!-- 変数 isAnotherTrue が false のときに追加メッセージを表示 -->
      <span th:unless="${isAnotherTrue}">追加の条件が偽のときに表示されるメッセージです。</span>
    </p>
  </div>
</body>
</html>

コントローラでの設定

コントローラでは、Thymeleafテンプレートで使用するために変数を設定します。
以下はSpringBootのコントローラの例です。

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class ExampleController {

  @GetMapping("/example")
  public String example(Model model) {
    // 変数を設定
    model.addAttribute("isTrue", false);
    model.addAttribute("isAnotherTrue", false);
    
    // テンプレート名を返す
    return "example";
  }
}

このように設定すると、isTrueがfalseのときにメッセージが表示され、さらにisAnotherTrueがfalseのときに追加メッセージが表示されます。