版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——JSP中的EL表達(dá)式介紹
JSP中的EL表達(dá)式介紹
JSP中的EL表達(dá)式介紹表達(dá)式介紹一、JSPEL語(yǔ)言定義EL提供了在JSP腳本編制元素范圍外使用運(yùn)行時(shí)表達(dá)式的功能。腳本編制元素是指頁(yè)面中能夠用于在JSP文件中嵌入Java代碼的元素。它們尋常用于對(duì)象操作以及執(zhí)行那些影響所生成內(nèi)容的計(jì)算。JSP2.0將EL表達(dá)式添加為一種腳本編制元素。二、JSPEL簡(jiǎn)介1、語(yǔ)法結(jié)構(gòu)${expression}2、[]與.運(yùn)算符EL提供“.“和“[]“兩種運(yùn)算符來(lái)存取數(shù)據(jù)。當(dāng)要存取的屬性名稱中包含一些特別字符,如.或?等并非字母或數(shù)字的符號(hào),就一定要使用“[]“。例如:${user.My-Name}應(yīng)當(dāng)改為${user[My-Name]}假使要?jiǎng)討B(tài)取值時(shí),就可以用“[]“來(lái)做,而“.“無(wú)法做到動(dòng)態(tài)取值。例如:${http://.77er[data]}中data是一個(gè)變量3、變量EL存取變量數(shù)據(jù)的方法很簡(jiǎn)單,例如:${username}。它的意思是取出某一范圍中名稱為username的變量。
JSP中的EL表達(dá)式介紹
由于我們并沒(méi)有指定哪一個(gè)范圍的username,所以它會(huì)依序從Page、Request、Session、Application范圍查找。假使途中找到username,就直接回傳,不再繼續(xù)找下去,但是假如全部的范圍都沒(méi)有找到時(shí),就回傳null。屬性范圍在EL中的名稱PageRequestSessionApplicationPageScopeRequestScopeSessionScopeApplicationScope二、JSPEL中的有效表達(dá)式有效表達(dá)式可以包含文字、操作符、變量(對(duì)象引用)和函數(shù)調(diào)用。我們將分別了解這些有效表達(dá)式中的每一種:1、文字、JSP表達(dá)式語(yǔ)言定義可在表達(dá)式中使用的以下文字:文字Booleantrue和false文字的值與Java類似??梢园魏握龜?shù)或負(fù)數(shù),例如24、-45、Integer567FloatingPoint與Java類似。可以包含任何正的或負(fù)的浮點(diǎn)數(shù),例如-1.8E-45、4.567
JSP中的EL表達(dá)式介紹
任何由單引號(hào)或雙引號(hào)限定的字符串。對(duì)于單引號(hào)、雙引號(hào)String和反斜杠,使用反斜杠字符作為轉(zhuǎn)義序列。必需注意,假使在字符串兩端使用雙引號(hào),則單引號(hào)不需要轉(zhuǎn)義。Nullnull2、操作符、JSP表達(dá)式語(yǔ)言提供以下操作符,其中大部分是Java中常用的操作符:術(shù)定義語(yǔ)算術(shù)型邏輯型關(guān)系型==、eq、!=、ne、、gt、=、le、=、ge。可以與其他值進(jìn)行比較,或與布爾型、字符串型、整型或浮點(diǎn)型文字進(jìn)行比較。and、、or、||、!、not+、-(二元)、*、/、div、%、mod、-(一元)
JSP中的EL表達(dá)式介紹
空條件型空操作符是前綴操作,可用于確定值是否為空。A?B:C。根據(jù)A賦值的結(jié)果來(lái)賦值B或C。3、隱式對(duì)象、JSP表達(dá)式語(yǔ)言定義了一組隱式對(duì)象,其中大量對(duì)象在JSPscriplet和表達(dá)式中可用:JSP頁(yè)的上下文。它可以用于訪問(wèn)JSP隱式對(duì)象,如請(qǐng)pageContext求、響應(yīng)、會(huì)話、輸出、servletContext等。例如,${pageContext.response}為頁(yè)面的響應(yīng)對(duì)象賦值。此外,還提供幾個(gè)隱式對(duì)象,允許對(duì)以下對(duì)象進(jìn)行簡(jiǎn)易訪問(wèn):術(shù)語(yǔ)定義將請(qǐng)求參數(shù)名稱映射到單個(gè)字符串參數(shù)值(通過(guò)調(diào)用paramServletRequest.getParameter(Stringname)獲得)。getParameter(String)方法返回帶有特定名稱的參
JSP中的EL表達(dá)式介紹
數(shù)。表達(dá)式$(http://.77)相當(dāng)于request.getParameter(name)。將請(qǐng)求參數(shù)名稱映射到一個(gè)數(shù)值數(shù)組(通過(guò)調(diào)用ServletRequest.getParameter(Stringname)獲得)。paramValues它與param隱式對(duì)象十分類似,但它檢索一個(gè)字符串?dāng)?shù)組而不是單個(gè)值。表達(dá)式${http://.77)相當(dāng)于request.getParamterValues(name)。將請(qǐng)求頭名稱映射到單個(gè)字符串頭值(通過(guò)調(diào)用ServletRequest.getHeader(Stringname)獲得)。表header達(dá)式${http://.77}相當(dāng)于request.getHeader(name)。將請(qǐng)求頭名稱映射到一個(gè)數(shù)值數(shù)組(通過(guò)調(diào)用ServletRequest.getHeaders(String)獲得)。它與頭headerValues隱式對(duì)象十分類似。表達(dá)式${http://.77}相當(dāng)于request.getHeaderValues(name)。將cookie名稱映射到單個(gè)cookie對(duì)象。向服務(wù)器發(fā)出的客戶端請(qǐng)求可以獲得一個(gè)或多個(gè)cookie。表達(dá)式cookie${http://.77.value}返回帶有特定名稱的第一個(gè)cookie值。假使請(qǐng)求包含多個(gè)同名的cookie,則應(yīng)當(dāng)使用${http://.77}表達(dá)式。
JSP中的EL表達(dá)式介紹
將上下文初始化參數(shù)名稱映射到單個(gè)值(通過(guò)調(diào)用initParamServletContext.getInitparameter(Stringname)獲得)。除了上述兩種類型的隱式對(duì)象之外,還有些對(duì)象允許訪問(wèn)多種范圍的變量,如Web上下文、會(huì)話、請(qǐng)求、頁(yè)面:術(shù)語(yǔ)定義將頁(yè)面范圍的變量名稱映射到其值。例如,EL表達(dá)式可以使用${pageScope.objectName}訪問(wèn)一個(gè)pageScopeJSP中頁(yè)面范圍的對(duì)象,還可以使用${pageScope.objectName.attributeName}訪問(wèn)對(duì)象的屬性。將請(qǐng)求范圍的變量名稱映射到其值。該對(duì)象允許訪問(wèn)請(qǐng)求對(duì)象的屬性。例如,EL表達(dá)式可以使用${requestScope.objectName}訪問(wèn)一個(gè)JSP請(qǐng)requestScope求范圍的對(duì)象,還可以使用${requestScope.objectName.attributeName}訪問(wèn)對(duì)象的屬性。將會(huì)話范圍的變量名稱映射到其值。該對(duì)象允許訪sessionScope問(wèn)會(huì)話對(duì)象的屬性。例如:
JSP中的EL表達(dá)式介紹
${http://.77}將應(yīng)用程序范圍的變量名稱映射到其值。該隱式對(duì)applicationScope象允許訪問(wèn)應(yīng)用程序范圍的對(duì)象。三、特別強(qiáng)調(diào):特別強(qiáng)調(diào):1、注意當(dāng)表達(dá)式根據(jù)名稱引用這些對(duì)象之一時(shí),返回的是相應(yīng)的對(duì)象而不是相應(yīng)的屬性。例如:即使現(xiàn)有的pageContext屬性包含某些其他值,${pageContext}也返回PageContext對(duì)象。2、注意%@pageisELIgnored=true%表示是否禁用EL語(yǔ)言,TRUE表示阻止.FALSE表示不阻止.JSP2.0中默認(rèn)的啟用EL語(yǔ)言。四、舉例說(shuō)明1、例如,%=request.getParameter(“username〞)%于${http://.77ername}等價(jià)2、例如,下面的那句EL語(yǔ)言可以完成:假使得到一個(gè)username為空,則不顯示null,而是不顯示值。
JSP中的EL表達(dá)式介紹
%=user.getAddr()%3、例如:等價(jià)于${user.addr}。%=request.getAttribute(“userlist〞)%http://.77erlist}4、例如,原理如上例3。${http://.77erlist}1${http://.77erlist}2${http://.77erlist}3${http://.77erlist}4${uselist}含義:執(zhí)行順序?yàn)?123。等價(jià)于${request“.〞后面的只是一個(gè)字符串,并不是真正的內(nèi)置對(duì)象,不能調(diào)用對(duì)象。4、例如,%=user.getAddr()%等價(jià)于${user.addr}第一句前面的user,為一個(gè)變量。其次句后面user,必需為在某一個(gè)范圍里的屬性。補(bǔ)充:${……}是JSP2.0中的ExpressionLanguage(EL)的語(yǔ)法。它定義了一個(gè)表達(dá)式,
JSP中的EL表達(dá)式介紹
其中的表達(dá)式可以是一個(gè)常量(如上),也可以是一個(gè)具體的表達(dá)語(yǔ)句(如forEach循環(huán)體中的狀況)。典型案例如下:?${http://.77ername}這說(shuō)明引用logininfo對(duì)象的username屬性。我們可以通過(guò)“.〞操作符引用對(duì)象的屬性,也可以用“[]〞引用對(duì)象屬性,如${logininfo[username]}與${http://.77ername}達(dá)到了同樣的效果?!癧]〞引用方式的意義在于,假使屬性名中出現(xiàn)了特別字符,如“.〞或者“-〞,此時(shí)就必需使用“[]〞獲取屬性值以避免語(yǔ)法上的沖突(系統(tǒng)開(kāi)發(fā)時(shí)應(yīng)盡量避免這一現(xiàn)象的出現(xiàn))。與之等同的JSPScript大致如下:LoginInfologininfo=(LoginInfo)session.getAttribute(“l(fā)ogininfo〞);Stringusername=logininfo.getUsername();可以看到,EL大大節(jié)省了編碼量。這里引出的另外一個(gè)問(wèn)題就是,EL將從哪里找到logininfo對(duì)象,對(duì)于${http://.77ername}這樣的表達(dá)式而言,首先會(huì)從當(dāng)前頁(yè)面中尋覓之前是否定義了變量logininfo,假使沒(méi)有找到則依次到Request、Session、Application范圍內(nèi)尋覓,直到找到為止。假使直到最終仍舊沒(méi)有找到匹配的變量,則返回null.假使我們需要指定變量的尋覓范圍,可以在EL表達(dá)式中指定搜尋范圍:${http://.77ername}${http://.77e
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年廣州發(fā)展集團(tuán)股份有限公司招聘?jìng)淇碱}庫(kù)及參考答案詳解1套
- 2025年巨野縣高鐵北站公開(kāi)招聘客運(yùn)服務(wù)人員備考題庫(kù)及參考答案詳解一套
- 2026年徐州市第一人民醫(yī)院公開(kāi)招聘在編醫(yī)務(wù)人員21人(第二批)備考題庫(kù)參考答案詳解
- 2026年中國(guó)葛洲壩集團(tuán)第一工程有限公司公開(kāi)招聘?jìng)淇碱}庫(kù)及完整答案詳解一套
- 2026年中車(chē)數(shù)智科技(雄安)有限公司招聘?jìng)淇碱}庫(kù)及一套完整答案詳解
- 2026年寧夏京銀智慧新能源有限公司招聘?jìng)淇碱}庫(kù)完整參考答案詳解
- 2026年中國(guó)農(nóng)業(yè)科學(xué)院農(nóng)產(chǎn)品加工研究所關(guān)于招聘果蔬加工智造與營(yíng)養(yǎng)健康創(chuàng)新團(tuán)隊(duì)執(zhí)行首席的備考題庫(kù)及參考答案詳解1套
- 2026年國(guó)藥(湖北)口腔醫(yī)院有限公司招聘?jìng)淇碱}庫(kù)及參考答案詳解1套
- 2026年中鋁(鄭州)鋁業(yè)有限公司招聘?jìng)淇碱}庫(kù)及完整答案詳解1套
- 2026年北京同仁堂鄂爾多斯市藥店有限公司正在招聘?jìng)淇碱}庫(kù)參考答案詳解
- 感術(shù)行動(dòng)培訓(xùn)課件
- 2025年脫毒馬鈴薯新品種示范基地建設(shè)工作方案
- 客運(yùn)企業(yè)事故管理制度
- 2025年煙機(jī)設(shè)備機(jī)械修理工(二級(jí))技能等級(jí)認(rèn)定考試題庫(kù)(含答案)
- 2025年上海市崇明區(qū)高考英語(yǔ)一模試卷
- 公司過(guò)賬協(xié)議合同
- 中國(guó)古代石刻藝術(shù)賞析
- 《資治通鑒》與為將之道知到課后答案智慧樹(shù)章節(jié)測(cè)試答案2025年春武警指揮學(xué)院
- 中班美術(shù)活動(dòng):給小魚(yú)穿新衣
- 建國(guó)后的薪酬改革歷史
- 《高速公路服務(wù)區(qū)開(kāi)放設(shè)置技術(shù)要求》
評(píng)論
0/150
提交評(píng)論