EL式 (Expression Language)

式言語 (Expression Language: EL)とは、JSP 2.0から導入された埋め込み型言語であり、演算結果や値参照の結果を出力するために使用される。

EL式の書き方

JSP内の静的なテキストの中や拡張タグに渡す属性値の部分に以下の形式で記述する。

${expression}

expression には、定数や変数、演算式、ユーザ定義の関数などを記述する。

EL(Expression Language)で使用できるリテラル
リテラル 説明
文字列 文字列は単一引用符(')又は2重引用符(")で囲む。
数値
EL(Expression Language)で使用できる演算子
演算子 説明
condition ? expr1 : expr2 conditionがtrueならばexpr1、falseならばexpr2
expr1 and expr2論理積
expr1 && expr2
expr1 or expr2論理和
expr1 || expr2
expr1 + expr2加算
expr1 - expr2減算
expr1 * expr2乗算
expr1 / expr2除算
expr1 % expr2剰余
expr1 mod expr2

ge

EL式において gt および > は「より大きい」を表す関係演算子である。

<c:if test="${var gt 1}">
  var is greater than 1.
</c:if>

<c:if test="${var1 > var2}">
  var1 is greater than var2.
</c:if>

lt

EL式において lt および < は「より小さい」を表す関係演算子である。

<c:if test="${var lt 1}">
  var is less than 1.
</c:if>

<c:if test="${var1 < var2}">
  var1 is less than var2.
</c:if>

ge

EL式において ge および >= は「以上」を表す関係演算子である。

<c:if test="${var ge 1}">
  var is greater than, equal to 1.
</c:if>

<c:if test="${var1 >= var2}">
  var1 is greater than, equal to var2.
</c:if>

le

EL式において le および <= は「以下」を表す関係演算子である。

<c:if test="${var le 1}">
  var is less than, equal to 1.
</c:if>

<c:if test="${var1 <= var2}">
  var1 is less than, equal to var2.
</c:if>

eq

EL式において eq および == は「等しい」を表す関係演算子である。

<c:if test="${var eq 1}">
  var is equal to 1.
</c:if>

<c:if test="${var1 == var2}">
  var1 is equal to var2.
</c:if>

文字列の比較

文字列が一致するかどうかの比較は、EL式の eq および == 演算子で行える。

<c:if test="${var == 'foo'}">
  var is equal to 'foo'.
</c:if>

文字列の連結

EL式において += は文字列を連結する演算子である。

<c:out value="${var1 += 'foo'}" />

ne

EL式において ne および != は「等しくない」を表す関係演算子である。

<c:if test="${var ne 1}">
  var is not equal to 1.
</c:if>

<c:if test="${var1 != var2}">
  var1 is not equal to var2.
</c:if>

not

EL式において not および ! は否定演算子である。

<c:if test="${!empty var}">
  var is not empty or null.
</c:if>

<c:if test="${not empty var}">
  var is not empty or null.
</c:if>

empty

EL式において empty は空文字またはNULLかどうかを判定する演算子である。

<c:if test="${empty var}">
  var is empty or null.
</c:if>

<c:if test="${!empty var}">
  var is not empty or null.
</c:if>

+

加算の演算結果を出力する。

${1+2}

-

減算の演算結果を出力する。

${3-2}

*

乗算の演算結果を出力する。

${2*3}

/

除算の演算結果を出力する。

${12/4}

%

剰余の演算結果を出力する。

${12%5}
${12 mod 7}

暗黙的オブジェクト

暗黙的オブジェクトとは、自分で生成しなくても使うことができるオブジェクトである。

暗黙的オブジェクト
オブジェクト 説明
applicationScope アプリケーションスコープに格納されたキーとオブジェクトのMAP
cookie クッキーに格納されたキーとCookieオブジェクトのMAP
header リクエストヘッダのキーとオブジェクトのMAP(String形式)
headerValues リクエストヘッダのキーとオブジェクトのMAP(String配列形式)
initParam web.xmlに定義された初期化パラメータのMAP
pageContext ページのコンテキスト情報
pageScope ページスコープに格納されたキーとオブジェクトのMAP
param リクエストパラメータのキー及びオブジェクトのMAP(String形式)
paramValues リクエストパラメータのキー及びオブジェクトのMAP(String配列形式)
requestScope リクエストスコープに格納されたキーとオブジェクトのMAP
sessionScope セッションスコープに格納されたキーとオブジェクトのMAP

JSPのEL式を使って、暗黙的オブジェクトのプロパティを出力することができる。

${param.name}