EL元素必須以${開始,以}結束。
EL元素可以出現在模板文本中,也可以出現在jsp標記的屬性中。
1、EL變量范圍:
在EL中訪問變量的值可以直接使用 ${ 變量名 } or ${ sessionScope.username }
規則:默認情況下,JSP引引擎會按照page、request、session、application的范圍搜索user關鍵字,然后將該對象取出,并顯示其對應的成員。如果在以上的范圍中有同名的key關鍵字,這樣就會出現問題,而且讓JSP引擎去搜索所有的范圍,會降低效率。所以,我們需要給出一個范圍,通過以下的方式:
示例
|
含義
|
${pageScope.user.name}
|
從page范圍內取出對象
|
${requestScope.user.name}
|
從request范圍內取出對象
|
${sessionScope.user.name}
|
從session范圍內取出對象
|
${applicationScope.user.name}
|
從application范圍內取出對象
|
2、EL關鍵字(16個):
and
|
eq
|
gt
|
ge
|
true
|
instanceof
|
null
|
div
|
or
|
ne
|
lt
|
not
|
false
|
le
|
empty
|
mod
|
3、訪問運算符.和[ ]:
EL使用訪問運算符“.“和”[ ]“來存取數據。
訪問運算符“.“通常用于引用一個對象的屬性。例如,訪問person對象的name屬性:
${person.name}在這種情況下,運算符.和[ ]可以相互替換使用。${person[“name“]}。
.和[ ] 也可混合使用${sessionScope。Cart[0].price}
差異:當存取的屬性名包括特殊字符(如“.“或”-“等)
“[ ]“運算符比”.“ 運算符能更好支持動態取值的情況。
4、算術運算:
EL支持通用的算術運算,包括+ - * / %
可以使用div代表除法( / )運算,使用mod代表模( % )運算。
算術運算符的優先級:
- 括號:()
- 負號:-
- 乘、除、模:*,/(或div),%(或mod)
注意:除法中,如果除以0,返回值為無窮大而不是錯誤。
5、關系運算:
EL支持通用的關系運算,包括:= != < > <= >=
也可以使用 eq ne lt gt le ge
EL關系運算的優先順序低于算術運算,關系運算的優先順序是:
1) <,>,<=,>=
2) == ,!=
3) EL中使用條件判斷:
操作
|
描述
|
示例
|
結果
|
==(eq)
|
是否相等
|
${5==5}
|
True
|
!=(ne)
|
是否不等
|
${5!=5}
|
false
|
<(lt)
|
是否小于
|
${5<7}
|
True
|
>(gt)
|
是否大于
|
${5>7}
|
false
|
<=(le)
|
是否小于等于
|
${5 le 5}
|
true
|
>=(ge)
|
是否大于等于
|
${5 ge 6}
|
false
|
l 判斷一個變量是否為空:
例如:${empty param.choice}${empty sessionScope.userName}
6、邏輯運算:與&&、或|| 、非!
優先級低于關系運算符,邏輯運算符之間的優先順序:
1.!(not)
2.&& (and)
3.|| (or)
7、empty運算符
在EL中有一個特殊的運算符empty,如果操作數值為null返回true,或者操作數本身是一個空的容器、空的數組或長度為0的字符串等也返回true。
注:空容器指的是不包含任何元素的容器。空數組表示其大小為0的數組。
8、自動類型轉換
EL支持自動類型轉換。
posted on 2008-09-26 20:05
老丁 閱讀(3215)
評論(0) 編輯 收藏 所屬分類:
jstl