EL


表現言語とは何ですか。


表示言語(Expression Language)は、値を表すスクリプト言語であり、JSPの基本構文を補完する役割を果たす.

言語が提供する機能を表す


JSPのScopeに一致する属性の使用
コレクション・オブジェクトへのアクセス方法の提供
数値、リレーションシップ、論理演算子の指定
Javaクラスメソッド呼び出しの提供
表示言語のみの組み込みオブジェクトの提供

言語を表す表現方法



プレゼンテーション言語のデフォルトオブジェクト


// 객체 사용예시
<%
	pageContext.setAttribute("p1", "page scope value");
	request.setAttribute("r1", "request scope value");
%>

Page Scope : {$pageContext.p1}
Request Scope : {$requestContext.r1}

// 겹치지 않는 경우 변수명만 사용해도 가능
// 겹치는 경우 작은 scope부터 찾는다
Page Scope : {$p1}		
Request Scope : {$r1}
// 출력 화면
Page Scope : page scope value
Request Scope : request scope value

Page Scope : page scope value
Request Scope : request scope value

プレゼンテーション言語でのデフォルトオブジェクトの使用例



言語を表すデータ型


ブールタイプ-trueとfalse
整数タイプ-0~9の間の整数の負の値に「-」が加算されます.
実数タイプ-0から9で構成され、3.24 e 3のような小数点(".")で表すことができます.
文字列タイプ:引用符("または")を含む文字列.一重引用符(")で表される場合、値に含まれる小数引用符は、"(")などとともに使用する必要があります.
記号自体はで表されます.
空のタイプ-null

オブジェクト・アクセス・ルール



1または2がnullである場合はnullを返します.
表示1がMapの場合、表示2をキーとする値が返されます.
1がListまたは配列である場合、2が整数である場合、その整数の2番目のインデックスに対応する値が返されます.
1がオブジェクトであることを示すと、2を表すgetterメソッドを呼び出す結果が返されます.

演算子


数値演算子


+:加算
-:減算
*:乗算
/またはdiv:除算
%またはmod:残り
数値以外のオブジェクトと数値演算子を使用する場合は、オブジェクトを数値に変換して演算子を実行します:${"10"+1}→${10+1}
数値に変換できないオブジェクトを数値演算子と一緒に使用すると、エラーが発生します:${"列"+1}→エラー
数値演算子で使用するオブジェクトがnullの場合、0:${null+1}→${0+1}に処理されます.

比較演算子


==またはeq
!= または
<またはgt
>またはgt
<=またはle
>=またはge
文字列比較:${str=="値"}str.compareTo("値")=0と同じ

論理演算子


&または
||or
! またはいいえ
// 연산자 예시
<%
    request.setAttribute("k", 10);
    request.setAttribute("m", true);
%>    
k + 5 : ${ k + 5 } <br>
k / 5 : ${ k div 5 } <br>
k > 5 : ${ k > 5 } <br>
m : ${ m } <br>
!m : ${ !m } <br>
// 출력 화면
k + 5 : 15
k / 5 : 3
k > 5 : true
m : true
!m : false

Null演算子、比較選択演算子{{Nullえんざんし:ひかくせんたくえんざんし}}



演算子の優先度


[] .
()
-(単一)no!empty
*/div % mod
+ -
< > <= >= lt gt le ge
== != eq ne
&& and
|| or
? :

無効表現言語:JSPで指定


<%@ page isELIgnored = "true"%>

ソース:https://www.boostcourse.org/web316/lecture/254288/?isDesc=false