EL式は、JSPの式を簡潔に表現することができる記述方法です。
JSPの式は「<%= 式 %>」と書くことで式の結果を表示させることができますが、EL式では「${ 式 }」と書きます。
JSPの式とEL式を比較
JSPの式:<%= 10 + 20 %> ⇒ 結果「30」と表示
EL式:${ 10 + 20 } ⇒ 結果「30」と表示
上記の例だとJSPの式とEL式の違いがないように思えますが、オブジェクトにアクセスをするときにEL式の威力が発揮されます。
まず、EL式でオブジェクトを参照する際は、そのオブジェクトがスコープオブジェクトに格納されている必要があります。
スコープオブジェクトは、pageScope、requestScope、sessionScope、applicationScope の4つから選択することができます。
EL式でオブジェクトを参照するJavaBeansの作成する
1 2 3 4 5 6 7 8 9 10 11 12 |
import java.io.Serializable; public class SampleBean implements Serializable{ private String name; public void setName(String name){ this.name = name; } public String getName(){ return name; } } |
上記クラスのオブジェクトがリクエストスコープに「key」という名前でセットされていた場合、
JSPの式とEL式からフィールド変数「name」を参照するための記述方法を説明します。
JSPの式でオブジェクトを参照する
1 |
<%= ((SampleBean)request.getAttribute("key")).getName() %> |
JSPの暗黙オブジェクト「request」から、getAttribute()メソッドを使用してオブジェクトを指定し、getName()メソッドを使用して値の取得を行います。
EL式でオブジェクトを参照する
1 |
${ requestScope.key.name } |
EL式ではスコープオブジェクトにセットした時の名前でオブジェクトにアクセスすることができます。また、スコープオブジェクト名は省略可能なので「${ key.name }」と書いても参照できます。
スコープオブジェクト名を省略した場合、pageScope → requestScope → sessionScope → applicationScopeの順に名前を検索し、最初に見つかったオブジェクトが取得されます。
また、指定したオブジェクトが見つからなかった場合、JSPの式では「null」と表示されますが、EL式では何も表示されません。
このようにEL式を使用すると、オブジェクトへの参照を見やすく記述することができます。