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

Thymeleaf if文でboolean判定を行う基本

Thymeleaf if文でboolean判定を行う基本
Thymeleaf if文でboolean判定を行う基本

新人と先輩の会話形式で理解しよう

新人

「Thymeleafでbooleanを使った条件分岐ってどうやるんですか?」

先輩

「Spring Bootの@Controllerから渡したboolean値を、th:ifで書くだけでOKです。」

新人

「具体的にコードを見たいです!」

先輩

「Pleiades+Gradle環境で実際に使えるコードを紹介しますね。」

1. Thymeleafでのboolean判定の基本的な使い方

1. Thymeleafでのboolean判定の基本的な使い方
1. Thymeleafでのboolean判定の基本的な使い方

まずは、Spring Bootの@Controllerでboolean型の値をModelに渡す方法から始めます。例えば、ログインしているかどうかを画面で判定したいケースを考えてみましょう。


package com.example.demo.controller;

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

@Controller
public class AuthController {

    @GetMapping("/status")
    public String authStatus(Model model) {
        boolean loggedIn = checkLogin(); // ダミーメソッド
        model.addAttribute("loggedIn", loggedIn);
        return "status";
    }

    private boolean checkLogin() {
        // 本来はセッションや認証処理
        return true;
    }
}

このように、loggedInをModelに追加しておくと、Thymeleafのテンプレートでth:if="${loggedIn}"と書くだけで条件分岐できます。GradleでPleiades上で実行すると、この値が反映されます。

2. th:ifを使ったboolean判定の書き方

2. th:ifを使ったboolean判定の書き方
2. th:ifを使ったboolean判定の書き方

では、HTML側でboolean判定を使って表示を切り替えてみましょう。以下は、ログインしているかどうかでメッセージを出し分ける例です。


<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>ログイン状態</title>
</head>
<body>
    <h1>ログイン状態の表示</h1>

    <div th:if="${loggedIn}">
        <p>ようこそ、ログイン中です!</p>
    </div>

    <div th:if="${!loggedIn}">
        <p>ログインしていません。ログインしてください。</p>
    </div>
</body>
</html>

このように、Thymeleafのth:ifにboolean値や!loggedInを使うことで、簡単に条件分岐ができます。Spring Boot+Pleiades+Gradle環境では、Modelに追加されたboolean値がそのまま使えます。

boolean判定は、リストの有無やログイン状態、権限チェックなど実務でもよく使われるため、この基本を押さえることは重要です。

3. boolean判定を活かした実務での活用例

3. boolean判定を活かした実務での活用例
3. boolean判定を活かした実務での活用例

実際のSpring Boot+Thymeleafを使った開発現場では、boolean判定を使った条件分岐はとてもよく使われます。たとえば認証判定や権限チェック、フラグによる表示切り替えなどです。

ここでは「管理者だけに特定のボタンを表示する例」を見てみましょう。@Controllerから「isAdmin」というboolean値を渡すことで、テンプレート内で「管理者かどうか」を判定できます。


package com.example.demo.controller;

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

@Controller
public class AdminController {

    @GetMapping("/dashboard")
    public String showDashboard(Model model) {
        boolean isAdmin = currentUserIsAdmin(); // 実際は認証情報等で判定
        model.addAttribute("isAdmin", isAdmin);
        return "dashboard";
    }

    private boolean currentUserIsAdmin() {
        // 疑似判定: true が管理者
        return true;
    }
}

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>ダッシュボード</title></head>
<body>
    <h1>管理者ダッシュボード</h1>

    <div th:if="${isAdmin}">
        <button type="button">システム設定へ</button>
    </div>

    <div th:if="${!isAdmin}">
        <p>この操作を行う権限がありません。</p>
    </div>
</body>
</html>

このようにboolean判定を使うことで、ユーザーの状態に応じた表示切り替えが簡単にできます。GradleでビルドしながらPleiades上で確認すると、動きが実感しやすいです。

4. 注意点とよくある間違い

4. 注意点とよくある間違い
4. 注意点とよくある間違い

初心者がboolean判定を使うときによくあるミスには、以下のようなパターンがあります。

  • nullを渡してしまい、th:ifで例外が起きる
  • 複雑な式を直書きしてHTMLの可読性が低くなる
  • boolean値の命名ルールが曖昧で混乱する

まずboolean値は、nullにならないように、@Controller側で初期値を設定してModelに渡してください。またドメイン値やリストサイズ判定などは、複雑な論理をなどで整理し、テンプレートの見通しをよくする工夫が必要です。

さらに変数名はisActivehasPermissionのように、意味がすぐわかる名前にしておくと、コードレビューでも可読性が高く安心です。

5. @Controllerでのbooleanデータの渡し方

5. @Controllerでのbooleanデータの渡し方
5. @Controllerでのbooleanデータの渡し方

最後に、@Controllerからbooleanデータを渡すときに気をつけたいポイントをまとめます。

  1. Model.addAttributeに必ずboolean値(null防止)を渡す
  2. Pleiades+Gradle環境でコンパイルエラーがないか確認する
  3. 必要に応じてboolean以外の補助フラグも渡す

下記は、販売状況によってボタンを出し分ける例です。boolean値は「canPurchase」という名前にして、何を意味するか一目でわかるようにしましょう。


@GetMapping("/product")
public String showProduct(Model model) {
    boolean inStock = checkStock();
    model.addAttribute("canPurchase", inStock);
    return "product";
}

<div th:if="${canPurchase}">
    <button>購入する</button>
</div>
<div th:if="${!canPurchase}">
    <p>在庫切れです。</p>
</div>

このように変数名を工夫しておくと、Thymeleafのテンプレートも自然な読み方になります。Pleiadesでコード補完しながら、Gradleでビルドと実行まで確認するとさらに理解が深まります。

6. 実際の画面に反映させる例

6. 実際の画面に反映させる例
6. 実際の画面に反映させる例

ここでは、Spring Bootの@Controllerでboolean判定した値を使って、実際にユーザー画面に反映させる例を紹介します。Pleiades+Gradle環境で開発している前提なので、すぐに動かせるコードになっています。

以下は、「セール中かどうか」に応じてメッセージや価格表示を切り替える画面のサンプルです。


package com.example.demo.controller;

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

@Controller
public class SaleController {

    @GetMapping("/sale")
    public String showSale(Model model) {
        boolean onSale = isSalePeriod(); // セール期間ならtrue
        double price = 1000.0;
        model.addAttribute("onSale", onSale);
        model.addAttribute("price", price);
        return "sale";
    }

    private boolean isSalePeriod() {
        // ダミー判定:trueならセール
        return true;
    }
}

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>セール情報</title></head>
<body>
    <h1>商品セール情報</h1>

    <div th:if="${onSale}">
        <p style="color:red;">現在セール中!特別価格:¥<span th:text="${price * 0.8}">価格</span></p>
    </div>
    <div th:if="${!onSale}">
        <p>通常価格:¥<span th:text="${price}">価格</span></p>
    </div>
</body>
</html>

このように boolean 判定を使うことで、価格表示を動的に切り替えできます。Pleiades 上で Gradle ビルドして、そのまま画面で挙動を確認できるので、初心者でも実務的なイメージがつかみやすいです。

7. 初心者が学習を進めるコツ

7. 初心者が学習を進めるコツ
7. 初心者が学習を進めるコツ

ここからは、Thymeleaf と boolean 判定を効果的に学び進めるためのコツを紹介します。Pleiades+Gradle 環境を使った開発者に役立つ内容です。

小さい単位で動かして理解する

まずは一つの boolean 値だけを判定する画面を作ってみましょう。大きな画面にいきなり複数の条件を書くと混乱しやすいので、小さく始めることが上達のコツです。

Gradle ビルドで確認しながら進める

Pleiades 上で ./gradlew build を実行し、エラーや警告がないか確認しながら学習すると、コードの信頼性が高まり理解が深まります。

ログや System.out を活用する

boolean が意図しない値になっているときは、@ControllerSystem.out.println(onSale) を入れて確認すると原因がわかりやすくなります。ログ出力に慣れておくと、実務でのデバッグが楽になります。

テンプレートにコメントを加える

HTML の中に
<!-- セール中なら価格を割引表示 --> のようなコメントを入れておくと、後からコードを見返すときに分かりやすく、可読性が上がります。

他の条件分岐パターンにも挑戦する

boolean 以外にもリストサイズ判定や null チェックなどの条件分岐を書いてみましょう。Thymeleaf の条件分岐を幅広く活用することで、テンプレートエンジンの理解が深まります。

8. まとめ

8. まとめ
8. まとめ

今回の記事では、Pleiades+Gradle 環境の Spring Boot アプリケーションにおいて、@Controller から Thymeleaf テンプレートへ boolean 型の値を渡し、th:if を使って条件分岐する基本を初心者向けにやさしく解説しました。

  • Model に boolean 値を渡すことで、Thymeleaf 側で簡単に条件分岐できる
  • th:if="${flag}"th:if="${!flag}" で true/false に応じた表示が可能
  • 実務では管理画面の権限判定やセールフラグなどに活用できる
  • boolean 判定時には null チェックや変数名の命名規則に注意すると、可読性と安定性が高まる
  • 小さい画面から始めて Gradle ビルドを活用し、ログ出力やテンプレートコメントを使って学習を進めよう

これらのコツを活かして、Thymeleaf の boolean 判定と if 文の使い方をしっかり身につけてください。初心者でも安心して使える Web アプリケーション開発の第一歩になります。ぜひ、Pleiades+Gradle+Spring Boot+Thymeleaf の組み合わせで、動く画面を作りながら進めていきましょう!

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

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

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

Thymeleafでboolean型の条件分岐を行うにはどうすればよいですか?

Thymeleafでは、Spring Bootの@Controllerでboolean型の値をModelに追加し、テンプレート側でth:if属性を使うことで条件分岐が可能です。たとえば、th:if="${loggedIn}"のように書くだけでtrueの場合の表示ができます。
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:

関連記事なし

カテゴリの一覧へ
新着記事
New1
Spring認証(Spring Security)
ブラウザからのフォーム送信とは?HTTPリクエストの基礎を初心者向けに解説!
New2
Thymeleaf
ThymeleafでJavaScriptコメントを正しく書こう!初心者向け徹底解説
New3
SpringのDB操作
Spring Boot + MySQLでCRUDアプリを作ろう!初心者向けにデータベース操作を完全解説
New4
Springの基本
@SpringBootApplicationの仕組みと役割を徹底解説!初心者でもわかるSpring Bootの基本
人気記事
No.1
Java&Spring記事人気No1
SpringのWeb開発(Spring MVC)
ルーティングとは?基本概念(Spring MVCのURL制御を理解)
No.2
Java&Spring記事人気No2
Thymeleaf
Thymeleaf とは?初心者向けにThymeleafの基本を徹底解説
No.3
Java&Spring記事人気No3
Springの基本
application.properties と YAML の基本をやさしく解説!初心者向けSpring Boot設定ファイル入門
No.4
Java&Spring記事人気No4
Springの基本
Spring Bootの環境変数の設定方法をやさしく解説!初心者向けapplication.propertiesの使い方
No.5
Java&Spring記事人気No5
Springの基本
Spring Bootのデフォルトログ設定を徹底解説(Logback / SLF4J)
No.6
Java&Spring記事人気No6
Spring認証(Spring Security)
セッション管理の基本(@SessionAttributes)を完全解説!初心者でもわかるセッションの仕組み
No.7
Java&Spring記事人気No7
SpringのDB操作
JPAの標準クエリメソッド(findById, findAll)を完全解説!初心者でもわかるデータ取得の基本
No.8
Java&Spring記事人気No8
SpringのWeb開発(Spring MVC)
ループ処理(th:each)の基本を完全ガイド!Thymeafの繰り返し処理の使い方