版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Ch08:使用JSTL和EL標(biāo)簽簡(jiǎn)化JSP視圖使用EL和JSTL簡(jiǎn)化頁(yè)面開(kāi)發(fā)本章任務(wù)理解并會(huì)使用EL表達(dá)式理解并會(huì)使用常用的JSTL標(biāo)簽本章目標(biāo)為什么需要ELJavaBean在JSP中的局限獲取JavaBean屬性必須要實(shí)例化強(qiáng)制類型轉(zhuǎn)化解決辦法使用EL表達(dá)式簡(jiǎn)化<% Employeeemployee=(Employee)request.getAttribute("employee");Computercomp=puter();Stringmanufacturer=comp.getManufacturer();%>如果頁(yè)面編寫(xiě)出現(xiàn)邏輯錯(cuò)誤,將會(huì)導(dǎo)致代碼執(zhí)行錯(cuò)誤,并且JSP頁(yè)面編譯頁(yè)面時(shí)也會(huì)產(chǎn)生錯(cuò)誤什么是EL表達(dá)式什么是ELEL即ExpressionLanguage(表達(dá)式語(yǔ)言)EL的功能替代JSP頁(yè)面中的復(fù)雜代碼EL的語(yǔ)法${ELexprission}${}或${bean['name']}${}實(shí)質(zhì)是調(diào)用bean的getName()方法EL的特點(diǎn)自動(dòng)轉(zhuǎn)換類型EL得到某個(gè)數(shù)據(jù)時(shí)可以自動(dòng)轉(zhuǎn)換類型
對(duì)于類型的限制更加寬松使用簡(jiǎn)單相比較在JSP中嵌入Java代碼,EL應(yīng)用更簡(jiǎn)單EL的語(yǔ)法EL語(yǔ)法以“${”作為開(kāi)始,以“}”作為結(jié)束直接使用變量名獲取值$${username}變量屬性范圍名稱屬性范圍
EL中的名稱pagepageScope,例如${pageScope.username},表示在page范圍內(nèi)查找username變量,找不到返回NullrequestrequstScopesessionsessionScopeapplicationapplicationScopeEL中的運(yùn)算符EL運(yùn)算符運(yùn)算符”[]”運(yùn)算符”.”作用獲取對(duì)象屬性獲取對(duì)象集合中的數(shù)據(jù)在Session中保存了一個(gè)(list)集合users${}${user[name]}相等${sessionScope.user[1]}得到集合中第二位的對(duì)象EL表達(dá)式的簡(jiǎn)單應(yīng)用輸出姓名顯示<%Mapnames=newHashMap();names.put("one","LiYang");names.put("two","WangHua");request.setAttribute("names",names);%>姓名:${names.one}<br/>姓名:${names["two"]}<br/>使用EL表達(dá)式輸出姓名演示示例:EL表達(dá)式的簡(jiǎn)單應(yīng)用EL隱式對(duì)象EL隱式對(duì)象小結(jié)隱式對(duì)象JSP隱式對(duì)象
paramValuesparamapplicationScoperequestScopesessionScopepageScope作用域訪問(wèn)對(duì)象
參數(shù)訪問(wèn)對(duì)象pageContextEL隱式對(duì)象EL隱式對(duì)象介紹對(duì)象名稱說(shuō)明pageScope返回頁(yè)面范圍的變量名,這些名稱已映射至相應(yīng)的值requestScope返回請(qǐng)求范圍的變量名,這些名稱已映射至相應(yīng)的值sessionScope返回會(huì)話范圍的變量名,這些名稱已映射至相應(yīng)的值applicationScope返回應(yīng)用范圍內(nèi)的變量,并將變量名映射至相應(yīng)的值param返回客戶端的請(qǐng)求參數(shù)的字符串值paramValues返回映射至客戶端的請(qǐng)求參數(shù)的一組值pageContext提供對(duì)用戶請(qǐng)求和頁(yè)面信息的訪問(wèn)練習(xí)——使用EL實(shí)現(xiàn)問(wèn)卷調(diào)查完成時(shí)間:30分鐘需求說(shuō)明:用戶輸入昵稱、所在城市,并且以多選的方式讓用戶選擇所使用的開(kāi)發(fā)語(yǔ)言,然后使用EL表達(dá)式顯示在頁(yè)面上
共性問(wèn)題集中講解常見(jiàn)調(diào)試問(wèn)題及解決辦法代碼規(guī)范問(wèn)題共性問(wèn)題集中講解為什么使用JSTL使用了EL表達(dá)式可以簡(jiǎn)化JSP頁(yè)面代碼,但是如果需要進(jìn)行邏輯判斷怎么辦?雖然EL表達(dá)式可以訪問(wèn)JavaBean的屬性,但是并不能實(shí)現(xiàn)在JSP中進(jìn)行邏輯判斷,因而要使用JSTL標(biāo)簽。什么是JSTL使用JSTL實(shí)現(xiàn)JSP頁(yè)面中邏輯處理什么是JSTLJSTL(JavaServerPagesStandardTagLibrary)JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù)JSTL通常會(huì)與EL表達(dá)式合作實(shí)現(xiàn)JSP頁(yè)面的編碼JSTL的優(yōu)點(diǎn)提供一組標(biāo)準(zhǔn)標(biāo)簽可用于編寫(xiě)各種動(dòng)態(tài)JSP頁(yè)面JSTL的環(huán)境搭建使用JSTL的步驟創(chuàng)建Web工程,選擇JSTL1.1在JSP頁(yè)面添加taglib指令使用JSTL標(biāo)簽……<%@tagliburi=""prefix="c"%>……JSTL標(biāo)準(zhǔn)標(biāo)簽庫(kù)介紹
JSTL標(biāo)準(zhǔn)標(biāo)簽庫(kù)內(nèi)的標(biāo)簽JSTL標(biāo)準(zhǔn)標(biāo)簽庫(kù)核心標(biāo)簽庫(kù)通用標(biāo)簽條件標(biāo)簽迭代標(biāo)簽setremoveoutifforEach通用標(biāo)簽通用標(biāo)簽的使用set:設(shè)置指定范圍內(nèi)的變量值out:計(jì)算表達(dá)式并將結(jié)果輸出顯示remove:刪除指定范圍內(nèi)的變量<%@tagliburi=""prefix="c"%><body><c:setvar="example"value="${100+1}"scope="session"/> <c:outvalue="${example}"/><c:removevar="example"scope="session"/></body> out標(biāo)簽在頁(yè)面上顯示信息或變量值remove標(biāo)簽用于刪除作用域內(nèi)的變量
插入使用核心標(biāo)簽的指令set標(biāo)簽用于給變量設(shè)置值和作用范圍scope="page|request|session|application"
演示示例:表達(dá)式標(biāo)簽的應(yīng)用通用標(biāo)簽的應(yīng)用<body><!--設(shè)置之前應(yīng)該是空值-->設(shè)置變量之前的值是:msg=<c:outvalue="${msg}"default="null"/><!--給變量msg設(shè)值--><c:setvar="msg"value="HelloJ2EE!"scope="page"></c:set><!--此時(shí)msg的值應(yīng)該是上面設(shè)置的"已經(jīng)不是空值了"-->設(shè)置新值以后:msg=<c:outvalue="${msg}"></c:out><br><!--把msg變量從page范圍內(nèi)移除--><c:removevar="msg"scope="page"/><!--此時(shí)msg的值應(yīng)該顯示null-->移除變量msg以后:msg=<c:outvalue="${msg}“default="null"></c:out></body> 演示示例:表達(dá)式標(biāo)簽的應(yīng)用使用set屬性進(jìn)行賦值使用out屬性輸出顯示使用remove屬性移除條件標(biāo)簽條件標(biāo)簽的使用if:if標(biāo)簽用于判斷條件是否成,與Java中的If語(yǔ)句做用用相同語(yǔ)法<%@tagliburi=""prefix="c"%><c:iftest="codition"var="name"scope="applicationArea"> …</c:if>
判斷條件表達(dá)式返回true/false變量名用于保存返回的true/false
指定var變量的作用域條件標(biāo)簽的應(yīng)用判斷登錄<body><c:setvar="isLogin"value="${notemptysessionScope.userId}"/><c:iftest="${notlogin}">…登錄表單</form></c:if><c:iftest="${isLogin}">已經(jīng)登錄!</c:if></body>使用條件標(biāo)簽判斷是否已登錄演示示例:條件標(biāo)簽的使用迭代標(biāo)簽<c:forEachitems=collectionvar=namebegin=startend=endstep=count> …循環(huán)體代碼…</forEach>迭代標(biāo)簽實(shí)現(xiàn)對(duì)集合中對(duì)象的遍歷語(yǔ)法
var指定集合內(nèi)數(shù)據(jù)的變量名稱
items指定要遍歷的集合對(duì)象forEach是for循環(huán)語(yǔ)句的變體,實(shí)現(xiàn)集合對(duì)象(可以是list、數(shù)組等)的處理begin指定從集合的第幾位開(kāi)始end指定迭代到集合的第幾位結(jié)束
Step指定迭代的增量迭代標(biāo)簽<c:forEachvar="varName"varStatus="vatStatusName"begin="start"end="end"step="count"> …循環(huán)體代碼…</forEach>迭代標(biāo)簽指定迭代的次數(shù)語(yǔ)法var指定集合內(nèi)數(shù)據(jù)的變量名稱
varStatus指定var成員的信息forEach是for循環(huán)語(yǔ)句的變體,實(shí)現(xiàn)集合對(duì)象(可以是list、數(shù)組等)的處理forEach迭代List<% Listproducts=GoodsDao.getAllProducts(); request.setAttribute("products",products);%>…<!--循環(huán)輸出商品信息--><c:forEachvar="product"items="${requestSducts}"varStatus="status"><!--如果是偶數(shù)行,為該行換背景顏色--><tr<c:iftest="${status.index%2==1}">style="background-color:rgb(219,241,212);"</c:if>><td>${}</td><td>${product.area}</td><td>${product.price}</td></tr></c:forEach>通過(guò)迭代標(biāo)簽顯示商品列表循環(huán)遍歷集合判斷奇偶行輸出商品信息演示示例:迭代標(biāo)簽的應(yīng)用其他標(biāo)簽總結(jié)什么是EL表
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)火百合行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國(guó)復(fù)方磺胺甲硝唑片行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國(guó)雙級(jí)擺線針輪減速機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024年中國(guó)電鍍七彩石市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)熔鋅爐市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)溫度計(jì)市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)氣動(dòng)鑿刀市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)嵌入式網(wǎng)絡(luò)數(shù)字虛擬矩陣市場(chǎng)調(diào)查研究報(bào)告
- 2024至2030年青石茶幾項(xiàng)目投資價(jià)值分析報(bào)告
- 2024年中國(guó)可拆式門(mén)鉸鏈?zhǔn)袌?chǎng)調(diào)查研究報(bào)告
- 滬教牛津版英語(yǔ)2024七年級(jí)上冊(cè)全冊(cè)知識(shí)清單(記憶版)
- 高中地理選擇性必修2(綜合檢測(cè)卷)(附答案)-2022-2023學(xué)年高二上學(xué)期地理選擇性必修2
- 未成年消費(fèi)退款協(xié)議書(shū)范本
- 政協(xié)分組討論個(gè)人發(fā)言稿
- 2024年新蘇教版六年級(jí)上冊(cè)科學(xué)全冊(cè)知識(shí)點(diǎn) (背誦用)
- DL∕T 5210.6-2019 電力建設(shè)施工質(zhì)量驗(yàn)收規(guī)程 第6部分:調(diào)整試驗(yàn)
- DL∕T 802.2-2017 電力電纜用導(dǎo)管 第2部分:玻璃纖維增強(qiáng)塑料電纜導(dǎo)管
- 錨索張拉記錄表
- 全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)Python復(fù)習(xí)備考題庫(kù)(含答案)
- 《生物安全培訓(xùn)》課件-2024鮮版
- 更換電梯協(xié)議書(shū)范本
評(píng)論
0/150
提交評(píng)論