式言語 (Expression Language: EL)とは、JSP 2.0から導入された埋め込み型言語であり、演算結果や値参照の結果を出力するために使用される。
JSP内の静的なテキストの中や拡張タグに渡す属性値の部分に以下の形式で記述する。
${expression}
expression には、定数や変数、演算式、ユーザ定義の関数などを記述する。
リテラル | 説明 |
---|---|
文字列 | 文字列は単一引用符(')又は2重引用符(")で囲む。 |
数値 |
演算子 | 説明 |
---|---|
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 |
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>
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>
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>
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>
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'}" />
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>
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>
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}