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のときに追加メッセージが表示されます。