カテゴリ: JSP 更新日: 2026/03/21

JSPのEL式で条件分岐する方法を完全解説!初心者でもわかる三項演算子の使い方

EL式で条件分岐を行う方法!三項演算子の使い方を紹介
EL式で条件分岐を行う方法!三項演算子の使い方を紹介

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

生徒

「JSPのEL式で条件分岐をしたいのですが、if文みたいなのは書けないんですか?」

先生

「JSPのEL式では、三項演算子という構文を使って、if文のような条件分岐を簡潔に書くことができます。」

生徒

「三項演算子って難しそうです…。初心者でも使えますか?」

先生

「使い方はとてもシンプルですよ。EL式の三項演算子の基本から、実用的なサンプルまで一緒に学んでいきましょう!」

1. JSPのEL式とは?条件分岐の前に基礎をおさらい

「1. JSPのEL式とは?条件分岐の前に基礎をおさらい」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

1. JSPのEL式とは?条件分岐の前に基礎をおさらい
1. JSPのEL式とは?条件分岐の前に基礎をおさらい

JSP(JavaServer Pages)は、Javaを使って動的なHTMLページを生成するためのテンプレート技術です。EL式(Expression Language)は、Javaオブジェクトの値をJSP内で簡単に参照するための記述方法です。

例えば、user.namerequestScope.userなどの値を、Javaコードを書かずに${user.name}のように出力できます。

このEL式には、三項演算子を使った条件分岐の機能も備わっており、JSP内でif文の代わりとして利用されます。

2. JSPのEL式で使える三項演算子の基本構文

2. JSPのEL式で使える三項演算子の基本構文
2. JSPのEL式で使える三項演算子の基本構文

三項演算子の基本的な書き方は以下の通りです。


${条件 ? 真の値 : 偽の値}

この構文は、Javaの三項演算子とほぼ同じで、条件がtrueであれば「真の値」が表示され、falseであれば「偽の値」が表示されます。

例えば、ログインユーザーが管理者かどうかを判定して表示を変えるときには次のように書きます。


${user.role == 'admin' ? '管理者ページ' : '一般ユーザー画面'}

3. EL式で三項演算子を使ったサンプルと出力例

3. EL式で三項演算子を使ったサンプルと出力例
3. EL式で三項演算子を使ったサンプルと出力例

それでは、簡単なサンプルを使って実際に三項演算子の使い方を確認してみましょう。以下はisLoginというフラグに応じて表示内容を変えるJSPコードです。


<%-- ログイン状態をリクエストスコープにセットしていると仮定 --%>
<p>${isLogin ? 'ようこそ、ログイン中です!' : 'ログインしてください。'}</p>

出力例:


ようこそ、ログイン中です!

このように、三項演算子はJSP内で簡潔に条件分岐を実装できる非常に便利な仕組みです。

4. JSTLのifタグとEL式の三項演算子の違い

「4. JSTLのifタグとEL式の三項演算子の違い」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. JSTLのifタグとEL式の三項演算子の違い
4. JSTLのifタグとEL式の三項演算子の違い

JSPには、JSTL(JSP Standard Tag Library)の<c:if>タグを使った条件分岐もありますが、こちらはブロック的に条件分岐を記述するため、HTML構造ごと切り替えたいときに便利です。

一方で、EL式の三項演算子は、値そのものを条件で切り替えたいときに向いています。


<c:if test="${user.age >= 20}">
    お酒が飲めます
</c:if>

このように複数行で分岐したいときにはJSTLタグ、1行で切り替えたいときにはEL式の三項演算子を使い分けるのがポイントです。

5. EL式の三項演算子とnullチェックの組み合わせ

5. EL式の三項演算子とnullチェックの組み合わせ
5. EL式の三項演算子とnullチェックの組み合わせ

EL式の三項演算子は、nullチェックと組み合わせることで、存在しない値への安全なアクセスも実現できます。

以下は、user.nicknameが空かどうかで表示を切り替える例です。


${empty user.nickname ? 'ニックネーム未設定' : user.nickname}

empty演算子は、変数がnullまたは空であればtrueを返すため、null安全な条件分岐を実現できます。

6. 数値による条件分岐をEL式で書いてみよう

6. 数値による条件分岐をEL式で書いてみよう
6. 数値による条件分岐をEL式で書いてみよう

数値の条件によってメッセージを切り替える場合も三項演算子は有効です。以下は年齢に応じたメッセージの切り替え例です。


${user.age >= 65 ? 'シニア割引対象' : '通常料金'}

このように、年齢・金額・在庫数など数値条件に対する条件分岐にも三項演算子は柔軟に対応できます。

7. boolean型との組み合わせでより直感的に

「7. boolean型との組み合わせでより直感的に」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7. boolean型との組み合わせでより直感的に
7. boolean型との組み合わせでより直感的に

boolean型のフラグに基づいて表示内容を切り替えるのは、三項演算子のもっとも基本的な用途です。

例えば、管理者かどうかを判定する場合は以下のように記述します。


${user.admin ? '管理者専用ページへ' : '一般ページへ'}

EL式は、boolean型を自動的に判定してくれるため、== trueなどと書かなくても構いません。

8. 三項演算子を複雑にネストしすぎないように注意

8. 三項演算子を複雑にネストしすぎないように注意
8. 三項演算子を複雑にネストしすぎないように注意

三項演算子はシンプルに条件を分けられる一方で、ネスト(入れ子)して使うと可読性が大幅に下がるというデメリットがあります。

以下のようなコードは避けたほうがよいでしょう。


${user.age >= 65 ? 'シニア' : user.age >= 20 ? '大人' : '未成年'}

複雑な条件はJSTLの<c:choose>タグで記述したほうが読みやすくなります。適材適所で使い分けることが重要です。

9. JSPの三項演算子を活用したテンプレート例

9. JSPの三項演算子を活用したテンプレート例
9. JSPの三項演算子を活用したテンプレート例

以下は、三項演算子を使ってユーザー情報を表示するテンプレート例です。


<p>ようこそ、${empty user.name ? 'ゲスト' : user.name}さん</p>
<p>ステータス:${user.vip ? 'VIP会員' : '一般会員'}</p>
<p>メール認証:${user.emailVerified ? '完了' : '未認証'}</p>

このように三項演算子をうまく使うことで、HTMLタグの中で動的に表示を切り替える柔軟なJSPテンプレートが実現できます。

関連記事:
カテゴリの一覧へ
新着記事
New1
Spring
SpringDataJPAのJPAクエリメソッド「Is」と「Equals」の使い方を完全ガイド!初心者向け解説
更新記事
New2
Spring
SpringDataJPAのJPAクエリメソッド「Or」の使い方を完全ガイド!初心者向け解説
更新記事
New3
Spring
SpringDataJPAのJPAクエリメソッド「And」の使い方を完全ガイド!初心者向け解説
更新記事
New4
Spring
SpringDataJPAのJPAクエリメソッド「Distinct」の使い方を完全ガイド!初心者向け解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Thymeleaf
Thymeleafのth:checkedの使い方!チェックボックスON/OFFを動的に制御する方法
No.3
Java&Spring記事人気No3
Java
Javaの抽象クラス(abstract)を完全ガイド!継承と設計のルールを学ぶ
No.4
Java&Spring記事人気No4
Spring
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理
No.5
Java&Spring記事人気No5
Thymeleaf
Thymeleafのth:blockの使い方を完全ガイド!初心者でもわかるテンプレートブロック管理
No.6
Java&Spring記事人気No6
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.7
Java&Spring記事人気No7
Java
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法
No.8
Java&Spring記事人気No8
Spring
Thymeleaf(タイムリーフ)入門!初心者でもわかるSpring Bootとテンプレートエンジンの使い方