EL表達(dá)式

轉(zhuǎn)載http://codingxiaxw.cn/

1. 概述

EL翠桦,即Expression Language婚肆。在JavaWeb中屬于JSP技術(shù)缸棵。
JSP中的表達(dá)式:Java腳本表達(dá)式<%=Java表達(dá)式%>;EL表達(dá)式${EL表達(dá)式}栋操。
JavaWeb中最好不要在JSP中寫Java代碼,所以用EL表達(dá)式來替代Java表達(dá)式渗柿。
語法及用法

2. 語法及用法

2.1獲取某個對象的值个盆,并將其輸出到頁面上。

  • .運(yùn)算符:${stu.name}做祝,即調(diào)用域中stu對應(yīng)的對象的name的讀屬性getName()砾省。但,若stu在4個域中沒有綁定相應(yīng)對象混槐,那么就在網(wǎng)頁上輸出空字符串(即什么都不輸出)编兄。
    ${stu.name}相當(dāng)于:
<%  
Student stu=pageContext.getAttribute("stu");  
if(stu!=null) out.println(stu.getName());  
%>
  • []運(yùn)算符:${stu['name']}或者${stu["name"]}。與點(diǎn)運(yùn)算符作用一樣声登,但當(dāng)索引或者名稱不符合Java名稱規(guī)范時(如狠鸳,獲取數(shù)組中的某個值)揣苏,只能用[]運(yùn)算符。
  • 獲取集合中的元素:List按照索引來獲取元素:${obj.list[1]}件舵,Map按照指定的key來獲取元素:${obj.map.key}或者${obj.map['key']}卸察。

2.2邏輯和數(shù)學(xué)運(yùn)算

  • empty運(yùn)算符:判斷一個對象是否為null或者””,是則返回true铅祸,否則返回false坑质。也可以判斷一個數(shù)組和集合,當(dāng)數(shù)組或集合對象不是null临梗,但對象中沒有原素也返回true涡扼。
  • .數(shù)學(xué)運(yùn)算符:+-*/。如${i+1}
  • 三元運(yùn)算符:${表達(dá)式?T表達(dá)式:F表達(dá)式}盟庞。如${a>1?a+1:a-1}
  • 不支持字符串連接吃沪。如${str+str},這是錯誤的什猖。

2.3票彪、11個內(nèi)置對象
EL內(nèi)置對象(或隱式對象),即在EL表達(dá)式中可以直接調(diào)用的對象不狮〗抵總結(jié)起來就是有一個JSP對象,十個Map對象摇零。

  • pageContext:與JSP內(nèi)置對象pageContext完全一樣垮耳。
  • pageScope:當(dāng)前頁面的域?qū)ο蟮腗ap。
  • requestScope:請求域?qū)ο蟮腗ap遂黍。
  • sessionScope:會話域?qū)ο蟮腗ap。
  • applicationScope:應(yīng)用域?qū)ο蟮腗ap俊嗽。
  • param:請求參數(shù)的Map雾家,key為請求參數(shù)名,value為請求參數(shù)的值绍豁。
  • paramValues:請求參數(shù)(可重名)的Map<String,String[])芯咧,key為請求參數(shù)名,value為請求參數(shù)的值數(shù)組竹揍。
  • header:請求消息頭Map敬飒,key為請求頭名,value為對應(yīng)的值芬位。
  • cookie:封裝cookie的Map<String,Cookie>无拗,key為cookie的name屬性,value為cookie對象本身昧碉。
  • initParam:初始化參數(shù)的Map英染,在web.xml中的context-param元素中定義的初始化參數(shù)揽惹。

2.4自定義EL函數(shù)。
第一步:定義一個有靜態(tài)方法的類四康。

package net.codingXiax.util;  
  
public class StringUtil{  
  public static String toUppercase(String str){  
     return "字符串";  
     }  
   }

第二步:配置tld搪搏。
在Web-INF目錄下(也可以在其他目錄下,該目錄下建立安全性更高)闪金,建立一個擴(kuò)展名為tld的xml文件疯溺。

<?xml version="1.0" encoding="UTF-8"?>  
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"  
        version="2.0">  
        <tlib-version>1.0</tlib-version>  
        <short-name>myfn</short-name>  
        <uri>http://www.yrom.net/jsp/string/fn</uri>  
        <function>  
              <name>toUppercase</name>  
              <function-class>net.yrom.util.StringUtil</function-class>  
              <function-signature>java.lang.String toUpperCase( java.lang.String )</function-signature>  
        </function>  
   </taglib>

第三步:配置web.xml.
如果tld文件是在Web-INF目錄或類路徑下,此步可跳過哎垦。

<jsp-config>
<taglib>
    <taglib-uri>http://www.yrom.net/jsp/string/fn</taglib-uri>
    <taglib-location>/WEB-INF/myfn.tld</taglib-location>
</taglib>  
</jsp-config>

第四步:在JSP中使用囱嫩。
注意應(yīng)先用taglib指令引入該uri。

<%@ taglib uri="/該tld所在位置" prefix="myfn" %>  
...  
<body>  
<%  
   pageContext.setAttribute("a","aaa");  
%>  
   ${myfn:toUppercase(a)}  
</body>  
...
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末撼泛,一起剝皮案震驚了整個濱河市挠说,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌愿题,老刑警劉巖损俭,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異潘酗,居然都是意外死亡杆兵,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門仔夺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來琐脏,“玉大人,你說我怎么就攤上這事缸兔∪杖梗” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵惰蜜,是天一觀的道長昂拂。 經(jīng)常有香客問我,道長抛猖,這世上最難降的妖魔是什么格侯? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮财著,結(jié)果婚禮上联四,老公的妹妹穿的比我還像新娘。我一直安慰自己撑教,他們只是感情好朝墩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著伟姐,像睡著了一般鱼辙。 火紅的嫁衣襯著肌膚如雪廉嚼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天倒戏,我揣著相機(jī)與錄音怠噪,去河邊找鬼。 笑死杜跷,一個胖子當(dāng)著我的面吹牛傍念,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播葛闷,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼憋槐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了淑趾?” 一聲冷哼從身側(cè)響起阳仔,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扣泊,沒想到半個月后近范,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡延蟹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年评矩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阱飘。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡斥杜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出沥匈,到底是詐尸還是另有隱情蔗喂,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布高帖,位于F島的核電站弱恒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏棋恼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一锈玉、第九天 我趴在偏房一處隱蔽的房頂上張望爪飘。 院中可真熱鬧,春花似錦拉背、人聲如沸师崎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽犁罩。三九已至齐蔽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間床估,已是汗流浹背含滴。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丐巫,地道東北人谈况。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像递胧,于是被迫代替她去往敵國和親碑韵。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

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

  • 一缎脾、EL表達(dá)式簡介 1.EL全名為Expression Language祝闻。主要作用: 獲取數(shù)據(jù):EL表達(dá)式主要用于...
    yjaal閱讀 3,884評論 2 28
  • 大家好,我是IT修真院深圳分院java第4期學(xué)員遗菠,一枚正直善良的java程序員联喘。今天給大家分享一下,修真院官網(wǎng)ja...
    肥胖癥患者閱讀 574評論 0 0
  • EL表達(dá)式 1舷蒲、EL簡介 1)語法結(jié)構(gòu) ${expression} 2)[]與.運(yùn)算符 EL 提供.和[]兩種運(yùn)算...
    二把刀9527閱讀 12,793評論 0 2
  • 依然分享一篇文章 有個小鎮(zhèn)上來了一個馬戲團(tuán)耸袜,他們在當(dāng)?shù)卣心寂R時工,并提出以下幾種不同待遇: 做三個小時工作送一張外...
    夕曳不是西閱讀 177評論 0 0
  • 讀下面這首詩牲平,根據(jù)你的理解寫一篇作文 要求:不少于600字 堤框,文體特征明顯(詩歌除外,不得出現(xiàn)真實(shí)的人名纵柿、地名蜈抓、校...
    嫘醬閱讀 1,145評論 0 14