EL表達(dá)式的基本語法及運(yùn)算符

EL(Expression Language) 是為了使JSP寫起來更加簡單世囊。表達(dá)式語言的靈感來自于 ECMAScript 和 XPath 表達(dá)式語言文搂,它提供了在 JSP 中簡化表達(dá)式的方法,讓Jsp的代碼更加簡化旬渠。
基本語法如下:

${表達(dá)式}

EL 表達(dá)式類似于 JSP 表達(dá)式 <%=表達(dá)式%>邮屁,EL 語句中的表達(dá)式值會(huì)被直接送到瀏覽器顯示姆涩,通過 page 指令的 isELIgnored 屬性來說明是否支持 EL 表達(dá)式。

當(dāng) isELIgnored 屬性值為 false 時(shí)卫旱,JSP 頁面可以使用 EL 表達(dá)式人灼,當(dāng) isELIgnored 屬性值為 true 時(shí),JSP 頁面不能使用 EL 表達(dá)式顾翼。isELIgnored 屬性值默認(rèn)為 false投放。

EL 的語法簡單、使用方便适贸,它以${開始灸芳、以}結(jié)束涝桅。

1. “[]”與“.”運(yùn)算符

EL 使用“[]”和“.”運(yùn)算符來訪問數(shù)據(jù),主要使用 EL 獲取對(duì)象的屬性烙样,包括獲取 JavaBean 的屬性值冯遂、獲取數(shù)組中的元素以及獲取集合對(duì)象中的元素。

對(duì)于 null 值直接以空字符串顯示谒获,而不是 null蛤肌,在運(yùn)算時(shí)也不會(huì)發(fā)生錯(cuò)誤或空指針異常,所以在使用 EL 訪問對(duì)象的屬性時(shí)不需要判斷對(duì)象是否為 null 對(duì)象批狱,這樣就為編寫程序提供了方便裸准。

1)獲取 JavaBean 的屬性值

假設(shè)在 JSP 頁面中有這樣一句話:

<%=user.getAge()%>

那么可以使用 EL 獲取 user 對(duì)象的屬性 age,代碼如下:

${user.age}

${user["age"]}

其中赔硫,點(diǎn)運(yùn)算符前面為 JavaBean 的對(duì)象 user炒俱,后面為該對(duì)象的屬性 age,表示利用 user 對(duì)象的 getAge 方法取值并顯示在網(wǎng)頁上爪膊。

2)獲取數(shù)組中的元素

假設(shè)在 Controller 或 Servlet 中有這樣一段話:

String dogs[] = {"lili","huahua","guoguo"};
request.setAttribute("array",dogs);

那么在對(duì)應(yīng)視圖 JSP 中可以使用 EL 取出數(shù)組中的元素侨赡,代碼如下:

${array[0]}
${array[1]}
${array[2]}

3)獲取集合對(duì)象中的元素

假設(shè)在 Controller 或 Servlet 中有這樣一段話:

ArrayList<UserBean> users = new ArrayList<UserBean>();
UserBean ub1 = new UserBean("zhang",20);
UserBean ub2 = new UserBean("zhao",50);
users.add(ub1);
users.add(ub2);
request.setAttribute("array",users);

其中厌均,UserBean 有兩個(gè)屬性 name 和 age糜烹,那么在對(duì)應(yīng)視圖 JSP 頁面中可以使用 EL 取出 UserBean 中的屬性隐解,代碼如下:

${array[0].name} ${array[0].age}
${array[1].name} ${array[1].age}

2. 算術(shù)運(yùn)算符

在 EL 表達(dá)式中有 5 個(gè)算術(shù)運(yùn)算符荧库,如表 1 所示敬特。

表 1 EL的算術(shù)運(yùn)算符

算術(shù)運(yùn)算符 說 明 示 例 結(jié) 果
+ ${13+2} 15
- ${13-2} 11
* ${13*2} 26
/(或div) {13/2}或{13 div 2} 6.5
%(或mod) 取模(求余) {13%2}或{13 mod2} 1

3. 關(guān)系運(yùn)算符

在 EL 表達(dá)式中有 6 個(gè)關(guān)系運(yùn)算符污秆,如表 2 所示拍屑。

表 2 EL 的關(guān)系運(yùn)算符

關(guān)系運(yùn)算符 說 明 示 例 結(jié) 果
==(或 eq) 等于 {13==2}或{13 eq 2} false
!=(或 ne) 不等于 {13!=2}或{13 ne 2} true
<(或 lt) 小于 {13<2}或{13 lt 2} false
>(或gt) 大于 {13>2}或{13 gt 2} true
<=(或le) 小于等于 {13<=2}或{13 le 2} false
>=(或ge) 大于等于 {13>=2}或{13 ge 2} true

4. 邏輯運(yùn)算符

在 EL 表達(dá)式中有 3 個(gè)邏輯運(yùn)算符荷辕,如表 3 所示凿跳。

表 3 EL 的邏輯運(yùn)算符

邏輯運(yùn)算符 說 明 示 例 結(jié) 果
&&(或and) 邏輯與 如果 A 為 true,B 為 false疮方,則 A && B(或 A and B) false
||(或 or) 邏輯或 如果 A 為 true控嗜,B 為 false,則 A ||B(或 A or B) true
!(或 not) 邏輯非 如果 A 為 true骡显,則 !A(或 not A) false

5. empty 運(yùn)算符

empty 運(yùn)算符用于檢測一個(gè)值是否為 null疆栏,例如變量 A 不存在,則 ${empty A} 返回的結(jié)果為 true惫谤。

6. 條件運(yùn)算符

EL 中的條件運(yùn)算符是“? :”壁顶,例如 ${A ? B:C},如果 A 為 true溜歪,計(jì)算 B 并返回其結(jié)果若专,如果 A 為 false,計(jì)算 C 并返回其結(jié)果蝴猪。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末调衰,一起剝皮案震驚了整個(gè)濱河市膊爪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嚎莉,老刑警劉巖米酬,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異趋箩,居然都是意外死亡赃额,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門阁簸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來爬早,“玉大人,你說我怎么就攤上這事启妹∩秆希” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵饶米,是天一觀的道長桨啃。 經(jīng)常有香客問我,道長檬输,這世上最難降的妖魔是什么照瘾? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮丧慈,結(jié)果婚禮上析命,老公的妹妹穿的比我還像新娘。我一直安慰自己逃默,他們只是感情好鹃愤,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著完域,像睡著了一般软吐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吟税,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天凹耙,我揣著相機(jī)與錄音,去河邊找鬼肠仪。 笑死肖抱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的藤韵。 我是一名探鬼主播虐沥,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了欲险?” 一聲冷哼從身側(cè)響起镐依,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎天试,沒想到半個(gè)月后槐壳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡喜每,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年务唐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片带兜。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡枫笛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出刚照,到底是詐尸還是另有隱情刑巧,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布无畔,位于F島的核電站啊楚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏浑彰。R本人自食惡果不足惜恭理,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望郭变。 院中可真熱鬧颜价,春花似錦、人聲如沸诉濒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽循诉。三九已至,卻和暖如春撇他,著一層夾襖步出監(jiān)牢的瞬間茄猫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來泰國打工困肩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留划纽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓锌畸,卻偏偏與公主長得像勇劣,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容