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