カテゴリ: Thymeleaf 更新日: 2025/12/21

Thymeleafのth:unlessの使い方を初心者向けに徹底解説!条件分岐を簡単に実装

Thymeleafのth:unless
Thymeleafのth:unless

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

生徒

「Thymeleafを使っているんですが、条件によって要素を非表示にする方法はありますか?」

先生

「はい、Thymeleafではth:unlessを使うことで、特定の条件が成り立たない場合に要素を表示することができます。」

生徒

「なるほど!具体的にどうやって使えばいいんですか?」

先生

「では、th:unlessの基本的な使い方とサンプルコードを見ていきましょう!」

1. th:unlessとは?

1. th:unlessとは?
1. th:unlessとは?

Thymeleafのth:unlessは、条件が成立しない場合にHTML要素を表示するための属性です。例えば、ユーザーがログインしていない場合に「ログインしてください」というメッセージを表示したいときに役立ちます。

この機能は条件分岐に対応しており、th:ifの逆の動作をします。つまり、th:ifが条件成立時に要素を表示するのに対し、th:unlessは条件が成立しない場合に表示します。

2. 基本的な使い方

2. 基本的な使い方
2. 基本的な使い方

では、具体例を見てみましょう。以下はth:unlessを使用した基本的なコードです。


<div th:unless="${user != null}">
    ユーザーがログインしていません。
</div>

このコードでは、${user != null}が成立しない(つまり、usernullの場合)に「ユーザーがログインしていません」というメッセージが表示されます。

3. サンプルプロジェクトでの使用例

3. サンプルプロジェクトでの使用例
3. サンプルプロジェクトでの使用例

実際にJavaコードとThymeleafテンプレートを組み合わせた例を見てみましょう。

Javaコード


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

@Controller
public class UserController {

    @GetMapping("/user")
    public String getUserPage(Model model) {
        model.addAttribute("user", null); // ユーザー情報がnullの場合
        return "user";
    }
}

Thymeleafテンプレート


<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>ユーザー情報</title>
</head>
<body>
    <div th:unless="${user != null}">
        ユーザーがログインしていません。
    </div>
    <div th:if="${user != null}">
        ようこそ、ユーザー!
    </div>
</body>
</html>

この例では、usernullの場合、ログインしていない旨のメッセージが表示されます。

4. th:unlessを使う上での注意点

4. th:unlessを使う上での注意点
4. th:unlessを使う上での注意点

以下は、th:unlessを使う際の注意点です:

  • 条件式の記述:条件が複雑な場合、読みやすくするためにメソッドや変数を使って整理しましょう。
  • th:ifとの使い分け:特定の条件で表示・非表示を切り替える場合、th:ifth:unlessを適切に使い分けてください。
  • デバッグの重要性:意図した条件式が正しく評価されるように、必要に応じてログやデバッグツールを使いましょう。

5. まとめ

5. まとめ
5. まとめ

この記事では、Thymeleafのth:unlessについて学びました。th:unlessは条件が成立しない場合に要素を表示する便利な属性であり、th:ifと合わせて使うことで柔軟な条件分岐を実現できます。

例えば、ユーザーがログインしていない場合に警告メッセージを表示する、在庫がない商品に「売り切れ」のラベルを付けるなど、実際のアプリケーション開発で多用される機能です。th:unlessを使いこなすことで、動的なHTMLを効率よく生成できるようになります。

再確認ポイント

  • th:unlessは条件が成立しない場合に要素を表示する属性。
  • 動的な条件分岐を作る際にはth:ifとの使い分けが重要。
  • 条件式が複雑になる場合は、簡潔で読みやすいコードを心がける。

以下に簡単なサンプルプログラムを再掲しますので、復習に役立ててください。


<div th:unless="${user != null}">
    ユーザーがログインしていません。
</div>

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

@Controller
public class UserController {

    @GetMapping("/user")
    public String getUserPage(Model model) {
        model.addAttribute("user", null); // ユーザー情報がnullの場合
        return "user";
    }
}
先生と生徒の振り返り会話

生徒

「この記事を読んで、th:unlessがどのように使えるか分かりました!条件分岐を考えるときに役立ちそうです。」

先生

「そうですね。特にth:ifと組み合わせることで、簡単に動的なHTMLを構築できます。条件式の記述をシンプルに保つよう心がけてください。」

生徒

「次はもっと複雑な条件式や他のThymeleaf属性も試してみたいです。」

先生

「それは良い考えですね。次回はth:eachなどの繰り返し構文も学んでみましょう。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Thymeleafのth:unlessは何のために使う属性ですか?初心者でも分かるように条件分岐との関係を教えてください。

Thymeleafのth:unlessは、指定した条件が成り立たないときだけHTML要素を表示するための属性で、条件分岐の一種です。th:ifが「条件が真なら表示」なのに対し、th:unlessは「条件が偽なら表示」なので、逆の動作をします。ログイン判定やメッセージ表示の切り替えなど、動的HTMLを扱うときに非常に便利です。

Thymeleafの条件分岐が正しく動かないときによくある原因は何ですか?

Modelに値がセットされていない、変数名の綴り間違い、条件式の誤りなどが一般的な原因です。特にJava側とテンプレート側でデータ名が一致していないケースが初心者には多いので注意してください。
カテゴリの一覧へ
新着記事
Thymeleafのth:fragmentを使ったテンプレートの再利用方法を完全ガイド!初心者でもわかる使い方
Javaの@PathVariableアノテーションの使い方を徹底解説!初心者でもわかるパスパラメータの基本と応用
SpringのBindingResult完全ガイド!初心者でもわかる入力チェックとgetTargetの使い方
Thymeleafのth:data-*属性を使いこなす!初心者向け完全解説
人気記事
No.1
Java&Spring記事人気No1
Javaのラムダ式で配列を扱う!Arrays.streamの基本と注意点を初心者向けに解説
No.2
Java&Spring記事人気No2
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.3
Java&Spring記事人気No3
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
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のHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.8
Java&Spring記事人気No8
JSPとは何か?初心者向けにできること・仕組み・特徴をやさしく解説