JSP中使用EL語(yǔ)法基礎(chǔ)總結(jié)

一彤叉、表達(dá)式語(yǔ)言(EL)是 JSP 2.0 引入的一種計(jì)算和輸出 Java 對(duì)象的簡(jiǎn)單語(yǔ)音庶柿。

二、使用 EL 語(yǔ)言前的配置秽浇。

1浮庐、導(dǎo)入standard.jar

2柬焕、在需要使用 EL 語(yǔ)音的頁(yè)面加上<%@ pageisELIgnored="false" %>审残。

注意 <%@ page isELIgnored="true" %> 表示是否禁用EL語(yǔ)言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默認(rèn)的啟用EL語(yǔ)言。

3斑举、對(duì)于整個(gè)JSP應(yīng)用程序搅轿,要修改WEB.XML配置(tomcat5.0.16默認(rèn)是支持EL的)


三、練習(xí)

四富玷、如何使用 EL 表達(dá)式璧坟。

1没宾、EL 的內(nèi)置對(duì)象。

解決相對(duì)路徑的問(wèn)題沸柔,返回站點(diǎn)的根路徑

jsp中:<%=request.getContextPath()% >

EL方式:${pageContext.request.contextPath}


首先我們要知道 EL 的內(nèi)置對(duì)象有哪些----pageScope、requestScope铲敛、sessionScope褐澎、applicationScope,如果未指定scope伐蒋,默認(rèn)從 pageScope 到?applicationScope一次擴(kuò)大范圍查找屬性名工三,也可以使用 xxxScope.屬性名 直接指定在某個(gè) scope 查找,如:

Java代碼

${?requestScope.tom?}

2先鱼、語(yǔ)法結(jié)構(gòu)俭正。

Java代碼

${expression}

3、[ ]與.運(yùn)算符焙畔。

EL 提供.和[]兩種運(yùn)算符來(lái)存取數(shù)據(jù)掸读。如:

Java代碼

${student.name}

${studentList[0].name}

當(dāng)要存取的屬性名稱中包含一些特殊字符,如.或?等并非字母或數(shù)字的符號(hào)宏多,就一定要使用“[ ]“儿惫。如:

Java代碼

${?student.My-Name} ??

${?student["My-Name"]?}

如果要?jiǎng)討B(tài)取值時(shí),就可以用“[ ]“來(lái)做伸但,而“.“無(wú)法做到動(dòng)態(tài)取值肾请。如:

Java代碼

${?sessionScope.student[property]?} ? ?

4、使用 EL 取出內(nèi)置對(duì)象的數(shù)據(jù)更胖。

(1)铛铁、普通對(duì)象和對(duì)象屬性。

服務(wù)器端:

Java代碼

request.setAttribute("student",?student);

在瀏覽器上打印出服務(wù)器端綁定的數(shù)據(jù):

Java代碼${?student?} ?

${?student.name?}??

${?student.teacher.name?}??


(2)却妨、數(shù)組中的數(shù)據(jù)饵逐。

服務(wù)器端:

Java代碼

String[]?nameArray?=newString[]{"Tom","Lucy","Lilei"};

request.setAttribute(“nameArray”,nameArray);

Student[]?students?=newStudent[3];

students[0]?=?stu1;

students[1]?=?stu2;

students[2]?=?stu3;

request.setAttribute(“students”,students);

在瀏覽器上打印出服務(wù)器端綁定的數(shù)組數(shù)據(jù):

Java代碼

${?nameArray[0]?}???

${?nameArray[1]?}???

${?nameArray[2]?}???

${?students[0].id?}???

${?students[1].name?}???

${?students[2].teacher.name?}???

(3)、List中的數(shù)據(jù)管呵。

服務(wù)器端:

Java代碼

List

?studentList=newArrayList();

studentList.add(stu1);

studentList.add(stu2);

studentList.add(stu3);

request.setAttribute(“studentList”,studentList);

在瀏覽器上打印出服務(wù)器端綁定的List數(shù)據(jù):

Java代碼

${?studentList[0].id?} ??

${?studentList[1].name?}???

${?studentList[2].teacher.name?}???

(4)梳毙、Map中的數(shù)據(jù)。

服務(wù)器端:

Java代碼

Map

?studentMap?=newHashMap();

studentMap.put("Tom",?stu1);

studentMap.put("Lucy",?stu2);

studentMap.put("Lilei",?stu3);

request.setAttribute(“studentMap”,studentMap);

在瀏覽器上打印出服務(wù)器端綁定的Map數(shù)據(jù):

Java代碼

${?studentMap.Tom.id?} ??

${?studentMap.Lucy.name?}???

${?studentMap.Lilei.teacher.name?}???

5捐下、使用 EL 取出隱式對(duì)象中的數(shù)據(jù)账锹。

JSP 表達(dá)式語(yǔ)言定義了一組隱式對(duì)象,其中許多對(duì)象在 JSP scriplet 和表達(dá)式中可用坷襟〖榧恚可使用的隱式對(duì)象如下:

page

ContextJSP 頁(yè)的上下文。它可以用于訪問(wèn) JSP 隱式對(duì)象婴程,如請(qǐng)求廓奕、響應(yīng)、會(huì)話、輸出桌粉、servletContext 等蒸绩。例如,${pageContext.response} 為頁(yè)面的響應(yīng)對(duì)象賦值铃肯。

此外患亿,還提供幾個(gè)隱式對(duì)象,允許對(duì)以下對(duì)象進(jìn)行簡(jiǎn)易訪問(wèn):

術(shù)語(yǔ) 定義

param將請(qǐng)求參數(shù)名稱映射到單個(gè)字符串參數(shù)值(通過(guò)調(diào)用 ServletRequest.getParameter (String name) 獲得)押逼。getParameter (String) 方法返回帶有特定名稱的參數(shù)步藕。表達(dá)式 $(param . name) 相當(dāng)于 request.getParameter (name)。

paramValues將請(qǐng)求參數(shù)名稱映射到一個(gè)數(shù)值數(shù)組(通過(guò)調(diào)用 ServletRequest.getParameter (String name) 獲得)挑格。它與 param 隱式對(duì)象非常類(lèi)似咙冗,但它檢索一個(gè)字符串?dāng)?shù)組而不是單個(gè)值。表達(dá)式 ${paramvalues. name) 相當(dāng)于 request.getParamterValues(name)漂彤。

header將請(qǐng)求頭名稱映射到單個(gè)字符串頭值(通過(guò)調(diào)用 ServletRequest.getHeader(String name) 獲得)雾消。表達(dá)式 ${header. name} 相當(dāng)于 request.getHeader(name)。

headerValues將請(qǐng)求頭名稱映射到一個(gè)數(shù)值數(shù)組(通過(guò)調(diào)用 ServletRequest.getHeaders(String) 獲得)显歧。它與頭隱式對(duì)象非常類(lèi)似仪或。表達(dá)式 ${headerValues. name} 相當(dāng)于 request.getHeaderValues(name)。

cookie將 cookie 名稱映射到單個(gè) cookie 對(duì)象士骤。向服務(wù)器發(fā)出的客戶端請(qǐng)求可以獲得一個(gè)或多個(gè) cookie范删。表達(dá)式 ${cookie. name .value} 返回帶有特定名稱的第一個(gè) cookie 值。如果請(qǐng)求包含多個(gè)同名的 cookie拷肌,則應(yīng)該使用 ${headerValues. name} 表達(dá)式到旦。

initParam將上下文初始化參數(shù)名稱映射到單個(gè)值(通過(guò)調(diào)用 ServletContext.getInitparameter(String name) 獲得)。

除了上述兩種類(lèi)型的隱式對(duì)象之外巨缘,還有些對(duì)象允許訪問(wèn)多種范圍的變量添忘,如 Web 上下文、會(huì)話若锁、請(qǐng)求搁骑、頁(yè)面:

術(shù)語(yǔ) 定義

pageScope將頁(yè)面范圍的變量名稱映射到其值。例如又固,EL 表達(dá)式可以使用 ${pageScope.objectName} 訪問(wèn)一個(gè) JSP 中頁(yè)面范圍的對(duì)象仲器,還可以使用 ${pageScope .objectName. attributeName} 訪問(wèn)對(duì)象的屬性。

requestScope將請(qǐng)求范圍的變量名稱映射到其值仰冠。該對(duì)象允許訪問(wèn)請(qǐng)求對(duì)象的屬性乏冀。例如,EL 表達(dá)式可以使用 ${requestScope. objectName} 訪問(wèn)一個(gè) JSP 請(qǐng)求范圍的對(duì)象洋只,還可以使用 ${requestScope. objectName. attributeName} 訪問(wèn)對(duì)象的屬性辆沦。

sessionScope將會(huì)話范圍的變量名稱映射到其值昼捍。該對(duì)象允許訪問(wèn)會(huì)話對(duì)象的屬性。例如:

${sessionScope. name}

applicationScope將應(yīng)用程序范圍的變量名稱映射到其值肢扯。該隱式對(duì)象允許訪問(wèn)應(yīng)用程序范圍的對(duì)象妒茬。

五、EL操作符

JSP 表達(dá)式語(yǔ)言提供以下操作符蔚晨,其中大部分是 Java 中常用的操作符:

術(shù)語(yǔ) 定義

算術(shù)型+郊闯、-(二元)、*蛛株、/、div育拨、%谨履、mod、-(一元)

邏輯型and熬丧、&&笋粟、or、||析蝴、!害捕、not

關(guān)系型==、eq闷畸、!=尝盼、ne、佑菩、gt盾沫、<=、le殿漠、>=赴精、ge〗驶希可以與其他值進(jìn)行比較蕾哟,或與布爾型、字符串型莲蜘、整型或浮點(diǎn)型文字進(jìn)行比較谭确。

空empty」娇洌空操作符是前綴操作琼富,可用于確定值是否為空。

條件型A ?B :C庄新。根據(jù) A 賦值的結(jié)果來(lái)賦值 B 或 C鞠眉。

例如:

Java代碼1+2=${1+2}

10/5=${10/5}

10div5=${10div5}

10%3=${10%3}

10mod3=${10mod3}

${empty??scope中的屬性名}

${!empty??scope中的屬性名}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末薯鼠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子械蹋,更是在濱河造成了極大的恐慌出皇,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哗戈,死亡現(xiàn)場(chǎng)離奇詭異郊艘,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)唯咬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)纱注,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人胆胰,你說(shuō)我怎么就攤上這事狞贱。” “怎么了蜀涨?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵瞎嬉,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我厚柳,道長(zhǎng)氧枣,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任别垮,我火速辦了婚禮便监,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘碳想。我一直安慰自己茬贵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布移袍。 她就那樣靜靜地躺著解藻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪葡盗。 梳的紋絲不亂的頭發(fā)上螟左,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音觅够,去河邊找鬼胶背。 笑死,一個(gè)胖子當(dāng)著我的面吹牛喘先,可吹牛的內(nèi)容都是我干的钳吟。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼窘拯,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼红且!你這毒婦竟也來(lái)了坝茎?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤暇番,失蹤者是張志新(化名)和其女友劉穎嗤放,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體壁酬,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡次酌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了舆乔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岳服。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖希俩,靈堂內(nèi)的尸體忽然破棺而出派阱,到底是詐尸還是另有隱情,我是刑警寧澤斜纪,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站文兑,受9級(jí)特大地震影響盒刚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绿贞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一因块、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧籍铁,春花似錦涡上、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至增显,卻和暖如春雁佳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背同云。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工糖权, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炸站。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓星澳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親旱易。 傳聞我的和親對(duì)象是個(gè)殘疾皇子禁偎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法腿堤,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法届垫,繼承相關(guān)的語(yǔ)法释液,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,644評(píng)論 18 399
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,811評(píng)論 0 11
  • 1.什么是JSP (1)jsp全稱是Java Server Pages装处,它和Servlet技術(shù)一樣都是sun公司定...
    yjaal閱讀 3,655評(píng)論 5 99
  • 1.學(xué)習(xí)內(nèi)容 JSP技術(shù)入門(mén)和常用指令 JSP的內(nèi)置對(duì)象&標(biāo)簽介紹 EL表達(dá)式&EL的內(nèi)置對(duì)象 2.JSP技術(shù)入門(mén)...
    WendyVIV閱讀 2,138評(píng)論 1 18
  • 很好的 xib 教程误债,應(yīng)該囊括了 xib 的所有使用方法。http://www.cocoachina.com/io...
    IT閱讀 268評(píng)論 0 1