カテゴリ: Thymeleaf 更新日: 2026/07/28

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を扱うときに非常に便利です。

th:unlessとth:ifの違いは何ですか?Spring BootとThymeleafの組み合わせでどちらを使うべきか迷っています。

th:ifは条件が成立すると要素を表示し、th:unlessは条件が成立しないと要素を表示します。どちらもThymeleafが提供する条件分岐機能ですが、目的に応じて使い分けます。例えば「ユーザーがログインしていない場合にメッセージを表示したい」ならth:unlessが自然で、逆に「ログインしている場合に名前を表示したい」ならth:ifが自然です。

ログインしていないときだけメッセージを表示したいのですが、th:unlessの条件式はどのように書くのが正しいですか?

ログインしていない状態を判定するには、ユーザー情報がnullであることを条件にします。条件式では「ユーザーが存在していない」という意味で変数がnullかどうかをチェックします。条件が成立しないときだけ表示される仕組みなので、ログイン判定に最適です。

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

Modelに値がセットされていない、変数名の綴り間違い、条件式の誤りなどが一般的な原因です。特にJava側とテンプレート側でデータ名が一致していないケースが初心者には多いので注意してください。
カテゴリの一覧へ
新着記事
New1
Thymeleaf
Thymeleafの#mapsユーティリティとは?初心者向けマップ操作ガイド
更新記事
New2
Thymeleaf
Thymeleafの#arraysユーティリティとは?初心者向け配列操作ガイド
更新記事
New3
Thymeleaf
Thymeleafの#strings.sizeメソッドとは?初心者向け文字列の長さ取得ガイド
更新記事
New4
Thymeleaf
Thymeleafの#datesユーティリティとは?初心者向け日付操作ガイド
更新記事
人気記事
No.1
Java&Spring記事人気No1
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.2
Java&Spring記事人気No2
Java
Javaのクラスとインスタンス化、コンストラクタの使い方完全ガイド!初心者でもわかるオブジェクト指向の基礎
No.3
Java&Spring記事人気No3
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.4
Java&Spring記事人気No4
Java
JavaのDateクラスの使い方を完全ガイド!初心者でもわかる日付操作
No.5
Java&Spring記事人気No5
Java
JavaのExceptionクラスを完全解説!初心者でも理解できる例外処理の基本
No.6
Java&Spring記事人気No6
Java
Java開発環境「Eclipse(Pleiades)」のインストール方法とメリットを初心者向けに解説
No.7
Java&Spring記事人気No7
Thymeleaf
Thymeleafのth:hrefの使い方を全解説。初心者でも完璧に理解できるガイド
No.8
Java&Spring記事人気No8
Thymeleaf
Thymeleafのth:valueの使い方を解説!フォーム入力値を保持したり動的に表示する方法