カテゴリ: JSP 更新日: 2026/01/15

EL式(Expression Language)とは?JSPでの役割とメリットを解説

EL式(Expression Language)とは?JSPでの役割とメリットを解説
EL式(Expression Language)とは?JSPでの役割とメリットを解説

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

生徒

「先生、最近JSPで${}っていう書き方を見たんですけど、あれは何ですか?」

先生

「それはEL式、つまりExpression Languageの記法ですね。JSPでデータを簡単に扱うための便利な書き方なんですよ。」

生徒

「Javaのコードとどう違うんですか?書きやすいんですか?」

先生

「その違いやメリットも含めて、今日はEL式の基本と役割について詳しく解説していきましょう。」

1. EL式(Expression Language)とは何か

1. EL式(Expression Language)とは何か
1. EL式(Expression Language)とは何か

EL式(Expression Language)は、JSPで変数を参照したり、データを出力したりするための簡潔な書き方です。JavaコードをHTMLに混ぜずにデータを表示できるため、保守性や可読性が大幅に向上します。

基本的な書き方はとてもシンプルで、次のようになります。


<p>こんにちは、${username} さん!</p>

この例では、usernameという変数の値をJSP内で表示しています。

2. なぜEL式を使うのか?そのメリット

2. なぜEL式を使うのか?そのメリット
2. なぜEL式を使うのか?そのメリット

JSPにおいてEL式を使うことには、多くのメリットがあります。代表的なポイントは以下のとおりです。

  • スクリプトレット(<% %>)を使わずに記述できる
  • HTMLとJavaのコードが混在しないため見やすい
  • セキュリティ面でも安心(XSS対策しやすい)
  • JSTL(JSP Standard Tag Library)との相性が良い

このような理由から、JSP開発ではEL式の利用が推奨されています。

3. EL式でアクセスできるスコープ

3. EL式でアクセスできるスコープ
3. EL式でアクセスできるスコープ

EL式では、変数に対して次の4つのスコープから値を取得できます。

  • pageスコープ(ページ内のみ有効)
  • requestスコープ(リクエストの間有効)
  • sessionスコープ(セッションの間有効)
  • applicationスコープ(アプリケーション全体で共有)

EL式ではスコープごとに次のような書き方でアクセスします。


${pageScope.name}
${requestScope.userId}
${sessionScope.loginUser}
${applicationScope.totalCount}

4. Javaのスクリプトレットとの違い

4. Javaのスクリプトレットとの違い
4. Javaのスクリプトレットとの違い

EL式はJavaのスクリプトレットに代わる表現方法として登場しました。以下に違いを比較してみましょう。

スクリプトレットの例


<% String name = "佐藤"; %>
<p>こんにちは、<%= name %>さん!</p>

EL式の例


<p>こんにちは、${name} さん!</p>

EL式を使えば、<% %>を使わなくて済むため、より簡潔でわかりやすいコードになります。

5. EL式の構文と使用できる演算子

5. EL式の構文と使用できる演算子
5. EL式の構文と使用できる演算子

EL式では、変数の参照だけでなく、演算子や条件式も使用できます。代表的な演算子を紹介します。

  • +(加算)
  • -(減算)
  • *(乗算)
  • /(除算)
  • ==(等しい)
  • !=(等しくない)
  • &&(AND)
  • ||(OR)
  • empty(空の判定)

たとえば次のように条件式で使うことができます。


<c:if test="${score >= 60}">
    合格です
</c:if>

6. EL式でオブジェクトのプロパティにアクセスする

6. EL式でオブジェクトのプロパティにアクセスする
6. EL式でオブジェクトのプロパティにアクセスする

EL式では、JavaBeansのプロパティにも簡単にアクセスできます。たとえば、Userオブジェクトにnameというプロパティがある場合、以下のように書きます。


${user.name}

JSP側ではオブジェクトをスコープにセットしておけば、このようにプロパティの値を直接取り出せます。

7. EL式とJSTLの組み合わせ

7. EL式とJSTLの組み合わせ
7. EL式とJSTLの組み合わせ

EL式はJSTL(JSP Standard Tag Library)と一緒に使うことで、条件分岐繰り返し処理などのロジックをスクリプトレットなしで書けるようになります。

たとえば、以下は<c:forEach>とEL式を組み合わせた例です。


<c:forEach var="item" items="${itemList}">
    <p>商品名:${item.name}</p>
</c:forEach>

このように、JSTLとEL式を使えば、シンプルで可読性の高いJSPコードを実現できます。

8. EL式の注意点と制限事項

8. EL式の注意点と制限事項
8. EL式の注意点と制限事項

便利なEL式ですが、いくつかの注意点や制限もあります。

  • Javaのメソッド呼び出しはできない(ただしJavaBeansのgetterはOK)
  • 文法エラーは実行時にしか気づけないことがある
  • デバッグがしづらいケースがある

複雑な処理はServletやJavaクラス側に記述し、JSPでは表示ロジックだけにEL式を使うように分離するのが基本です。

9. JSP開発でEL式を活用するベストプラクティス

9. JSP開発でEL式を活用するベストプラクティス
9. JSP開発でEL式を活用するベストプラクティス

JSPでの開発では、EL式を次のように活用することで、コードの品質を高めることができます。

  • 表示専用ロジックはすべてEL式で記述する
  • 条件分岐や繰り返し処理はJSTLと組み合わせて使う
  • セッション情報やリクエスト情報の取得もEL式で行う

これにより、メンテナンスしやすく、保守性の高いWebアプリケーションが実現できます。

10. 既存のスクリプトレットからEL式への置き換え例

10. 既存のスクリプトレットからEL式への置き換え例
10. 既存のスクリプトレットからEL式への置き換え例

最後に、従来のスクリプトレットをEL式に置き換える具体例を紹介します。

従来のスクリプトレット


<% String city = "東京"; %>
<p>現在の都市:<%= city %></p>

EL式に置き換えたコード


<p>現在の都市:${city}</p>

このように、JSPにおける記述をよりスマートに変えていくことで、モダンな開発スタイルに対応できます。

サーブレットやJSPの基礎を体系的に理解したい人には、 定番の入門書がこちらです。

スッキリわかるサーブレット&JSP入門をAmazonで見る

※ Amazon広告リンク

関連記事:
カテゴリの一覧へ
新着記事
New1
Spring
SpringDataJPAのJPAクエリメソッド「StartingWith」の使い方を完全ガイド!初心者向け解説
更新記事
New2
Spring
SpringDataJPAのJPAクエリメソッド「NotLike」の使い方を完全ガイド!初心者向け解説
更新記事
New3
Thymeleaf
Thymeleafのth:style属性を完全ガイド!初心者でもわかる動的スタイルの適用方法
更新記事
New4
Servlet
JavaのPart.getSubmittedFileNameメソッドの使い方を徹底解説!初心者でもわかるファイル名の取得方法
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Servlet
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.3
Java&Spring記事人気No3
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.4
Java&Spring記事人気No4
Spring
Spring Data JPA入門!findAll()やfindBy**()の使い方などデータベース操作の基礎を学ぶ
No.5
Java&Spring記事人気No5
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.6
Java&Spring記事人気No6
Spring
SpringのModelクラスの使い方を完全ガイド!初心者でも安心
No.7
Java&Spring記事人気No7
Java
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法
No.8
Java&Spring記事人気No8
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介

💻 作業効率アップに

長時間のコーディングでも疲れにくい♪ 静音ワイヤレスマウス

Logicool Signature M750 を見る

※ Amazon広告リンク