EL表达式
12. EL式
2005.10.17 株式会社四次元データ 宮澤了祐
12.1. EL式
JSP2.0よりEL式(Expression Language)が導入されました。 EL式は式言語とも呼ばれ、演算結果や値の参照の結果を出力するために使用されます。
EL式は
${式}
というような形で記述し、「{}」で囲まれた式を計算し、計算結果を出力します。
例えば
${100 * 100}
ならば、
10000
という値を出力します。
またスコープに保存されたオブジェクトを、参照することも出来ます。スコープを明示しない場合は、全てのスコープを参照しますが、特定のスコープのオブジェクトにアクセスすることも出来ます。
例えばsessionスコープにpersonというオブジェクトがあり、nameという属性を持っているならば
${sessionScope.person.name} (省略した場合) ${person.name}
という形でpersonのnameプロパティにアクセスすることが出来ます。
EL式の書式は次の形です。「.」演算子を使用してアクセスするためには、オブジェクトのそのプロパティに対して、getXXX()メソッドが定義されている必要があります。
${スコープ名(省略可).オブジェクト名.プロパティ名}
配列やListの場合は
${スコープ名(省略可).オブジェクト名[インデックス]}
となります。
Mapを扱う場合は
${スコープ名(省略可).オブジェクト名["キー名"]}
で取得することが出来ます。
次のスコープを使用出来ます。
スコープ | ELでの記述 |
Sessionスコープ | sessionScope |
Applicationスコープ | applicationScope |
Requestスコープ | requestScope |
Pageスコープ | pageScope |
また、ELでは上記のスコープ以外にも暗黙で使用出来るオブジェクトがいくつか定義されています。
オブジェクト名 | 内容 |
pageContext | JSPファイルのコンテキスト。context、session、requestの各オブジェクトにアクセスできます。 |
param | リクエストパラメータと値のマップ。 使用例)${param.arg1} |
paramValues | リクエストパラメータと配列値のマップ。 使用例)${paramValue.arg[0]} |
header | ヘッダ名と値のマップ。 使用例)${header['user-agent']} |
headerValues | ヘッダ名と配列のマップ。 使用例)${headerValues['user-agent'][0]} |
initParam | 初期化パラメータを持つMapオブジェクト。 使用例)${initParam["param1"]} |
cookie | cookie名とcookieオブジェクトを対応させたMapオブジェクト。 使用例)${cookie["param1"].value} |
EL式を利用することでJSPファイルをスクリプトレスにしやすくなり、可読性が増します。