EL式(Expression Language)とは?JSPでの役割とメリットを解説
生徒
「先生、最近JSPで${}っていう書き方を見たんですけど、あれは何ですか?」
先生
「それはEL式、つまりExpression Languageの記法ですね。JSPでデータを簡単に扱うための便利な書き方なんですよ。」
生徒
「Javaのコードとどう違うんですか?書きやすいんですか?」
先生
「その違いやメリットも含めて、今日はEL式の基本と役割について詳しく解説していきましょう。」
1. EL式(Expression Language)とは何か
EL式(Expression Language)は、JSPで変数を参照したり、データを出力したりするための簡潔な書き方です。JavaコードをHTMLに混ぜずにデータを表示できるため、保守性や可読性が大幅に向上します。
基本的な書き方はとてもシンプルで、次のようになります。
<p>こんにちは、${username} さん!</p>
この例では、usernameという変数の値をJSP内で表示しています。
2. なぜEL式を使うのか?そのメリット
JSPにおいてEL式を使うことには、多くのメリットがあります。代表的なポイントは以下のとおりです。
- スクリプトレット(<% %>)を使わずに記述できる
- HTMLとJavaのコードが混在しないため見やすい
- セキュリティ面でも安心(XSS対策しやすい)
- JSTL(JSP Standard Tag Library)との相性が良い
このような理由から、JSP開発ではEL式の利用が推奨されています。
将来を見据えて、+αのスキルを身につけたい方へ
JavaやLinuxを学んでいても、「このままで市場価値は上がるのか」 「キャリアの選択肢を広げたい」と感じる方は少なくありません。
AIを学ぶならアイデミープレミアム3. EL式でアクセスできるスコープ
EL式では、変数に対して次の4つのスコープから値を取得できます。
- pageスコープ(ページ内のみ有効)
- requestスコープ(リクエストの間有効)
- sessionスコープ(セッションの間有効)
- applicationスコープ(アプリケーション全体で共有)
EL式ではスコープごとに次のような書き方でアクセスします。
${pageScope.name}
${requestScope.userId}
${sessionScope.loginUser}
${applicationScope.totalCount}
4. Javaのスクリプトレットとの違い
EL式はJavaのスクリプトレットに代わる表現方法として登場しました。以下に違いを比較してみましょう。
スクリプトレットの例
<% String name = "佐藤"; %>
<p>こんにちは、<%= name %>さん!</p>
EL式の例
<p>こんにちは、${name} さん!</p>
EL式を使えば、<% %>を使わなくて済むため、より簡潔でわかりやすいコードになります。
5. EL式の構文と使用できる演算子
EL式では、変数の参照だけでなく、演算子や条件式も使用できます。代表的な演算子を紹介します。
+(加算)-(減算)*(乗算)/(除算)==(等しい)!=(等しくない)&&(AND)||(OR)empty(空の判定)
たとえば次のように条件式で使うことができます。
<c:if test="${score >= 60}">
合格です
</c:if>
6. EL式でオブジェクトのプロパティにアクセスする
EL式では、JavaBeansのプロパティにも簡単にアクセスできます。たとえば、Userオブジェクトにnameというプロパティがある場合、以下のように書きます。
${user.name}
JSP側ではオブジェクトをスコープにセットしておけば、このようにプロパティの値を直接取り出せます。
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式の注意点と制限事項
便利なEL式ですが、いくつかの注意点や制限もあります。
- Javaのメソッド呼び出しはできない(ただしJavaBeansのgetterはOK)
- 文法エラーは実行時にしか気づけないことがある
- デバッグがしづらいケースがある
複雑な処理はServletやJavaクラス側に記述し、JSPでは表示ロジックだけにEL式を使うように分離するのが基本です。
9. JSP開発でEL式を活用するベストプラクティス
JSPでの開発では、EL式を次のように活用することで、コードの品質を高めることができます。
- 表示専用ロジックはすべてEL式で記述する
- 条件分岐や繰り返し処理はJSTLと組み合わせて使う
- セッション情報やリクエスト情報の取得もEL式で行う
これにより、メンテナンスしやすく、保守性の高いWebアプリケーションが実現できます。
10. 既存のスクリプトレットからEL式への置き換え例
最後に、従来のスクリプトレットをEL式に置き換える具体例を紹介します。
従来のスクリプトレット
<% String city = "東京"; %>
<p>現在の都市:<%= city %></p>
EL式に置き換えたコード
<p>現在の都市:${city}</p>
このように、JSPにおける記述をよりスマートに変えていくことで、モダンな開発スタイルに対応できます。