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

Thymeleafでのnull判定の書き方とよくあるミスを初心者向けに解説

Thymeleaf if null判定の書き方とよくあるミス
Thymeleaf if null判定の書き方とよくあるミス

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

新人

「先輩、Thymeleafで値がnullかどうかを判定したいのですが、どうやって書けばいいですか?」

先輩

「Thymeleafでは、if文を使って簡単にnull判定ができますよ。」

新人

「if文ですか?Javaのif文と同じような感じなんでしょうか?」

先輩

「そうですね。ただ、ThymeleafはHTMLテンプレート内で書くので、ちょっと書き方が違います。詳しく説明しますね!」

1. Thymeleafでのnull判定とは?

1. Thymeleafでのnull判定とは?
1. Thymeleafでのnull判定とは?

Thymeleafは、Spring Bootの開発でよく使われるテンプレートエンジンです。HTMLファイルの中で、サーバーから受け取った値を埋め込むことができる便利な仕組みです。開発環境としては、Pleiadesを使い、Gradleでプロジェクトを構築していることを前提にします。

Thymeleafを使うと、例えばコントローラで設定した変数がnullかどうかをHTML上で確認することができます。これを「Thymeleaf null判定」といいます。初心者の方は、よく「null判定ってどう書くんだろう?」と思うかもしれませんが、Thymeleafならとてもシンプルに書けるので安心してください。

通常、コントローラは@Controllerアノテーションを付けて作成します。そして、例えば以下のようにコントローラでモデルにデータをセットしたとします。


@Controller
public class SampleController {

    @GetMapping("/sample")
    public String showSample(Model model) {
        String message = null; // nullをセットしている例
        model.addAttribute("message", message);
        return "sample";
    }
}

このように、messageがnullの場合、HTML側でどう判定するかが「Thymeleafのnull判定」です。

2. if文を使ったnull判定の基本構文

2. if文を使ったnull判定の基本構文
2. if文を使ったnull判定の基本構文

Thymeleafでのnull判定は、th:if属性を使うのが基本です。HTMLの要素にth:ifを追加して、表示するかどうかを判定します。初心者向けに、まずはシンプルなサンプルを紹介します。

以下は、先ほどのmessageがnullではない場合にだけ、メッセージを表示するサンプルです。


<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Thymeleaf null判定サンプル</title>
</head>
<body>
    <p th:if="${message != null}" th:text="${message}">メッセージがここに表示されます。</p>
</body>
</html>

このように、th:if="${message != null}"と書くことで、messageがnullではない場合だけ

タグが表示されます。

逆に、messageがnullの場合には、

タグ自体がレンダリングされません。これがThymeleafの基本的なif null判定の仕組みです。

なお、よくあるミスとして、th:ifの中で「null」を文字列として書いてしまうことがあります。例えば、以下のように書くと、正しく判定できません。


<p th:if="${message != 'null'}" th:text="${message}"></p>

この例では「'null'」という文字列と比較してしまっているので、messageが本当にnullかどうかの判定にはなりません。初心者の方は、必ずnullは文字列ではなくJavaのキーワードとして書くことを覚えておきましょう。

また、if文だけでなく、th:unlessを使って「nullの場合だけ表示する」という逆の条件も書けます。以下はその例です。


<p th:unless="${message != null}">メッセージは設定されていません。</p>

この例では、messageがnullのときだけ

タグが表示される仕組みです。条件に応じて、th:ifth:unlessを使い分けると便利です。

以上が、Thymeleafのif文を使った基本的なnull判定の書き方です。初心者向けにポイントをまとめると:

  • Thymeleafでは、th:ifを使ってnull判定を行う
  • null判定では、nullを文字列ではなくキーワードとして書く
  • th:unlessは逆の条件(nullの場合だけ)に使う
  • コントローラは@Controllerを使い、PleiadesのGradle環境で開発する

このポイントを押さえておけば、初心者の方でもThymeleafのnull判定がしっかり書けるようになります。

3. よく使われるnull判定の例

3. よく使われるnull判定の例
3. よく使われるnull判定の例

ここでは、初心者向けにThymeleafのnull判定の実践的な例をいくつか紹介します。PleiadesのGradle環境で開発しているプロジェクトで、コントローラから受け取った変数がnullかどうかを確認する場面はとても多いです。例えば、ユーザー情報やメッセージの表示などでnull判定がよく使われます。

まず、以下のようなシンプルな例を見てみましょう。コントローラでuserNameという変数を渡しているとします。


<p th:if="${userName != null}" th:text="${userName}">ユーザー名が表示されます。</p>
<p th:unless="${userName != null}">ユーザー名が設定されていません。</p>

このように、th:ifth:unlessを組み合わせることで、nullの場合とnullではない場合で別々のメッセージを表示できます。

また、リストやコレクションがnullかどうかを確認するときもあります。以下の例は、商品リストitemListがnullかどうかを判定するものです。


<ul th:if="${itemList != null}">
    <li th:each="item : ${itemList}" th:text="${item.name}"></li>
</ul>
<p th:unless="${itemList != null}">商品が登録されていません。</p>

この例では、itemListがnullではない場合は商品一覧が表示され、nullの場合は「商品が登録されていません。」と表示されます。こういったパターンは、Thymeleafを使うときによく出てくるので覚えておくと便利です。

4. null判定でやりがちなミスと注意点

4. null判定でやりがちなミスと注意点
4. null判定でやりがちなミスと注意点

初心者の方がThymeleafでnull判定を書くときに、いくつかのミスをしやすいポイントがあります。ここでは、代表的なミスとその対策を紹介します。

一番多いミスは、th:ifth:unlessの中でnullを文字列として書いてしまうことです。例えば以下のように書くと、正しくnull判定ができません。


<p th:if="${userName != 'null'}" th:text="${userName}"></p>

このように「'null'」という文字列と比較してしまうと、実際のnull判定とは異なる結果になります。正しくは次のように、nullは文字列ではなくJavaのキーワードとして書きます。


<p th:if="${userName != null}" th:text="${userName}"></p>

もう一つのミスとして、th:textの中に直接nullが入ってしまい、ブラウザに「null」と表示されてしまうことがあります。これを防ぐためには、th:ifでnull判定をしておくことが大切です。もしnullかもしれない変数をそのままth:textで表示すると、想定外の表示になるので注意しましょう。

さらに、コントローラ側でnullを返さないように初期化するのも良い方法です。例えば、空文字列や空のリストを返すようにするだけで、HTML側のnull判定を減らすことができます。以下はコントローラ側で空文字列を設定する例です。


@Controller
public class UserController {

    @GetMapping("/user")
    public String showUser(Model model) {
        String userName = ""; // 空文字列で初期化
        model.addAttribute("userName", userName);
        return "user";
    }
}

このようにしておくと、HTML側ではnull判定ではなく空文字列かどうかの判定に切り替えられ、よりシンプルなコードになります。

5. null判定をきれいに書くためのポイント

5. null判定をきれいに書くためのポイント
5. null判定をきれいに書くためのポイント

最後に、Thymeleafのnull判定をきれいに書くためのポイントをいくつか紹介します。まず、条件分岐はth:ifth:unlessを適切に使い分けることが大切です。必要以上に条件式を複雑に書かないことが、コードを読みやすくするコツです。

次に、テンプレートの可読性を高めるために、条件分岐が増えてきた場合は、部分テンプレート(フラグメント)を使うのもおすすめです。たとえば、エラーメッセージの表示部分だけを切り出して別ファイルにすることで、メインのHTMLがすっきりします。

さらに、変数の初期化やnullチェックをコントローラ側である程度行うことで、HTMLに余計な判定を書かなくて済むようになります。これは、PleiadesのGradle環境でプロジェクトを作る際にも役立つ基本的な考え方です。

実際に、以下のように複雑な条件式をできるだけ避け、シンプルにまとめるように意識するとよいでしょう。


<!-- 複雑に書かずに、できるだけ簡潔に書く -->
<p th:if="${user != null and user.name != null}" th:text="${user.name}"></p>

この例では、ユーザー情報userがnullではない場合、さらにuser.nameがnullでないかを確認してから表示するようにしています。条件分岐を短くまとめると、後から見返したときにわかりやすいので、初心者の方はぜひ実践してみてください。

以上のポイントを意識すれば、Thymeleafでのnull判定をきれいに書けるだけでなく、他のテンプレートエンジンでも役立つ基本的な考え方が身につきます。ぜひ、PleiadesのGradle環境で自分のプロジェクトに取り入れてみてください。

6. null判定を使ったサンプルアプリケーション例

6. null判定を使ったサンプルアプリケーション例
6. null判定を使ったサンプルアプリケーション例

ここでは、Thymeleafのnull判定を使ったサンプルアプリケーション例を紹介します。開発環境はPleiadesで、Gradleを使用し、コントローラは@Controllerで作成しています。

例えば、ユーザーのプロフィール情報を表示する画面を作る場合を考えましょう。ユーザーのニックネームnicknameが設定されている場合とされていない場合で表示を切り替えるサンプルです。


@Controller
public class ProfileController {

    @GetMapping("/profile")
    public String showProfile(Model model) {
        String nickname = null; // ここではnullのケースを例示
        model.addAttribute("nickname", nickname);
        return "profile";
    }
}

そして、HTMLテンプレートprofile.htmlでは以下のように書きます。


<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>プロフィール</title>
</head>
<body>
    <h1>プロフィール画面</h1>
    <p th:if="${nickname != null}" th:text="'ようこそ、' + ${nickname} + 'さん!'"></p>
    <p th:unless="${nickname != null}">ニックネームが設定されていません。</p>
</body>
</html>

この例では、コントローラからnicknameがnullのまま渡された場合、th:unlessが有効になり「ニックネームが設定されていません。」と表示されます。逆に、nicknameに値がある場合は、ようこそメッセージが表示される仕組みです。

7. 初心者が練習するときのポイント

7. 初心者が練習するときのポイント
7. 初心者が練習するときのポイント

Thymeleafのnull判定を練習するときは、まず小さいサンプルを作ることが大切です。複雑なアプリケーションをいきなり作るのではなく、nullの状態と値がある状態を簡単に切り替えて動作確認できるサンプルを作ってみましょう。

具体的には、以下のような手順で練習するのがおすすめです。

  • まず、Pleiadesで新しいGradleプロジェクトを作成する
  • コントローラを@Controllerで作成し、Modelに値をセットする
  • HTMLファイルでth:ifth:unlessを使い、表示内容を切り替える
  • ブラウザで表示を確認して、nullのときとそうでないときの違いを確かめる

また、練習するときは変数をnullに設定したり、値を入れたりして、表示の変化をしっかり確認するのがポイントです。何度も表示を切り替えて試すことで、条件分岐の仕組みがよくわかるようになります。

初心者の方は、最初はうまくいかないこともありますが、焦らずに「nullは何も値がないこと」と「th:ifは条件に合うときだけ表示する」という基本を繰り返し練習すると、自然に身につきますよ。

8. 記事のまとめ

8. 記事のまとめ
8. 記事のまとめ

今回の記事では、Thymeleafのif文を使ったnull判定の基本構文から、よくあるミスやきれいに書くコツまで、初心者向けに詳しく解説しました。開発環境はPleiadesで、Gradleを使ってプロジェクトを作成し、コントローラは@Controllerを使用する流れで進めました。

Thymeleafのnull判定は、条件分岐の基本としてとても重要です。変数がnullのときに表示を切り替えることで、ユーザーに正しい情報をわかりやすく伝えられるようになります。また、条件分岐をきれいに書くことで、テンプレートが読みやすく保守性の高いものになります。

特に初心者の方にとっては、「nullは値がないこと」という基本と、「th:ifで条件を指定するときはnullを文字列ではなくキーワードとして書く」という点が大切です。今回の記事で紹介したサンプルアプリケーション例や練習のポイントを、ぜひ実際に手を動かして確かめてみてください。

Thymeleafは、条件分岐やnull判定だけでなく、繰り返し処理や変数の操作など、便利な機能がたくさんあります。これからも、PleiadesのGradle環境での開発に役立つ知識として、どんどん練習していきましょう!

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

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

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

Thymeleafのnull判定とは何ですか?初心者でもわかりますか?

Thymeleafのnull判定とは、テンプレート内で変数がnull(値がない状態)かどうかを確認して、表示を切り替える仕組みです。初心者でもth:ifやth:unlessを使えば簡単にnull判定できます。
コメント
コメント投稿は、ログインしてください

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

関連記事:

関連記事なし

カテゴリの一覧へ
新着記事
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の繰り返し処理の使い方