![第8章EL表達(dá)式語言與JSTL課件_第1頁](http://file4.renrendoc.com/view/0c9a46d5a9225b1136ce76aab3326398/0c9a46d5a9225b1136ce76aab33263981.gif)
![第8章EL表達(dá)式語言與JSTL課件_第2頁](http://file4.renrendoc.com/view/0c9a46d5a9225b1136ce76aab3326398/0c9a46d5a9225b1136ce76aab33263982.gif)
![第8章EL表達(dá)式語言與JSTL課件_第3頁](http://file4.renrendoc.com/view/0c9a46d5a9225b1136ce76aab3326398/0c9a46d5a9225b1136ce76aab33263983.gif)
![第8章EL表達(dá)式語言與JSTL課件_第4頁](http://file4.renrendoc.com/view/0c9a46d5a9225b1136ce76aab3326398/0c9a46d5a9225b1136ce76aab33263984.gif)
![第8章EL表達(dá)式語言與JSTL課件_第5頁](http://file4.renrendoc.com/view/0c9a46d5a9225b1136ce76aab3326398/0c9a46d5a9225b1136ce76aab33263985.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第8章EL表達(dá)式語言與JSTL標(biāo)簽庫本章主要內(nèi)容:8.1EL表達(dá)式——重點(diǎn)8.2JSTL標(biāo)簽庫——重點(diǎn)8.3Core標(biāo)簽庫——重點(diǎn)8.4其他標(biāo)簽庫——了解8.1EL表達(dá)式語言1.EL語法2.EL內(nèi)置對(duì)象8.1表達(dá)式語言
(ExpressionLanguage,EL)與JSP腳本相比,EL提供了一種更加簡(jiǎn)化的方式來生成動(dòng)態(tài)Web頁面。EL的基本語法如下:${表達(dá)式expr}其中,$為EL語法中的輸出符號(hào),expr
為EL有效表達(dá)式,它包含在一對(duì)大括號(hào)內(nèi)。EL有效表達(dá)式可以包含文字、操作符、變量(對(duì)象引用)和函數(shù)調(diào)用等。例如:${23+15.28}1.EL表達(dá)式語法內(nèi)容類型合法取值Booleantrue和falseInteger與Java類似??梢园魏握龜?shù)或負(fù)數(shù),例如24、-45、567FloatingPoint與Java類似??梢园魏握幕蜇?fù)的浮點(diǎn)數(shù),例如-1.8E-45、4.567String任何由單引號(hào)或雙引號(hào)限定的字符串。對(duì)于單引號(hào)、雙引號(hào)和反斜杠,使用反斜杠字符作為轉(zhuǎn)義序列。必須注意,如果在字符串兩端使用雙引號(hào),則單引號(hào)不需要轉(zhuǎn)義NullnullEL有效表達(dá)式支持的內(nèi)容類型術(shù)語定義算術(shù)型+、-、*、/、%邏輯型and、&&、or、||、!、not關(guān)系型==、!=、<=、>=??梢耘c其他值進(jìn)行比較,或與布爾型、字符串型、整型或浮點(diǎn)型文字進(jìn)行比較??湛詹僮鞣乔熬Y操作,可用于確定值是否為空。條件型A?B:C。根據(jù)A賦值的結(jié)果來賦值B或C。EL有效表達(dá)式支持的操作符舉例:el.jsp<%@pagecontentType="text/html"%><%@pagepageEncoding="UTF-8"%><html><head><title>EL有效表達(dá)式</title></head><body>${true}<br>${23+15.28}<br>${12>10}<br>${(12>10)&&(a!=b)}</body></html>說明:JSP2.0以后,EL可以應(yīng)用在JSP頁面的模版文本中,也可以作為JSP標(biāo)記的動(dòng)態(tài)屬性。它唯一不能使用的場(chǎng)合就是JSP的腳本元素內(nèi)部。類別標(biāo)識(shí)符描述JSPpageContext
JSP頁的上下文。作用域pageScope
與page作用域的屬性的名稱和值相關(guān)聯(lián)的類requestScope
與request作用域的屬性的名稱和值相關(guān)聯(lián)的類sessionScope
與session作用域的屬性的名稱和值相關(guān)聯(lián)的類applicationScope
與application作用域的屬性的名稱和值相關(guān)聯(lián)的類請(qǐng)求參數(shù)param
存儲(chǔ)請(qǐng)求參數(shù)名稱-值對(duì)的類。paramValues
將請(qǐng)求參數(shù)的所有值作為String
數(shù)組存儲(chǔ)的類請(qǐng)求頭header
按名稱存儲(chǔ)請(qǐng)求頭部主要值的類headerValues
將請(qǐng)求頭部的所有值作為String
數(shù)組存儲(chǔ)的類Cookiecookie
按名稱存儲(chǔ)請(qǐng)求附帶的cookie的類初始化參數(shù)initParam
按名稱存儲(chǔ)Web應(yīng)用程序上下文初始化參數(shù)的類2.EL支持的隱式對(duì)象例8-1:使用EL實(shí)現(xiàn)一個(gè)計(jì)算器。8-1.jsp<%@pagelanguage=“java”contentType=“text/html;charset=gb2312"%><html><head><title>8-1.jsp</title></head><body><h1align=“center”>加法計(jì)算器</h1><formaction=“”><inputtype=“text”name=“num1”value=“${param.num1}”/><inputtype=“text”name=“num2”value=“${param.num2}”/><inputtype=“text”name=“num3”value=“${param.num1+param.num2}”/> <inputtype=“submit”value=“計(jì)算”/></form></body></html>8.2JSTL標(biāo)簽庫JSP標(biāo)準(zhǔn)標(biāo)記庫(JSPStandardTagLibrary,JSTL):是一個(gè)實(shí)現(xiàn)Web應(yīng)用程序中常用功能的定制標(biāo)記庫集,這些功能包括輸出、程序流程控制、數(shù)據(jù)管理格式化、XML操作以及數(shù)據(jù)庫訪問等。JSTL標(biāo)記庫:實(shí)現(xiàn)大量服務(wù)器端Java應(yīng)用程序常用的基本功能。通過為典型表示層任務(wù)(如數(shù)據(jù)格式化和迭代或條件內(nèi)容)提供標(biāo)準(zhǔn)實(shí)現(xiàn),JSTL使JSP作者可以專注于特定于應(yīng)用程序的開發(fā)需求,而不是為這些通用操作“另起爐灶”。JSTL的發(fā)展史JSTL的第一個(gè)版本1.0發(fā)布于2002年6月,從1.1版本開始,它已經(jīng)成為JavaEE標(biāo)準(zhǔn)的核心技術(shù)規(guī)范,J2EE1.4規(guī)范支持的JSTL版本為1.1,它要求Servlet2.3和JSP1.2以上版本的Web容器的支持。在最新的JavaEE5規(guī)范中支持的JSTL版本為1.2,它要求的Servlet2.4和JSP2.0以上版本的Web容器的支持。JSTL的意義JSTL的推出,大大提高了JSP頁面的開發(fā)效率,為頁面設(shè)計(jì)人員和程序開發(fā)人員的分工協(xié)作提供了便利。有了JSTL,JavaWeb開發(fā)人員就可以將精力專注于實(shí)現(xiàn)特定的業(yè)務(wù)邏輯,而不必費(fèi)力去實(shí)現(xiàn)迭代和條件判斷等通用功能,開發(fā)效率將大大提高。另外,統(tǒng)一的JSTL也大大提高了JavaWeb應(yīng)用的兼容性和可移植性。標(biāo)記庫名稱URI前綴說明corehttp:///jsp/jstl/corec核心功能實(shí)現(xiàn),包括變量管理、迭代和條件判斷等I18Nhttp:///jsp/jstl/fmtfmt國(guó)際化,數(shù)據(jù)格式顯示SQLhttp:///jsp/jstl/sqlsql操作數(shù)據(jù)庫XMLhttp:///jsp/jstl/xmlx操作XMLFnhttp:///jsp/jstl/functionsfn常用函數(shù)庫,包括String操作,集合類型操作等
JSTL的功能標(biāo)記庫分類JSTL的使用步驟在Web應(yīng)用中使用JSTL需要以下步驟:
將JSTL所需的jar添加的Web工程的類路徑在JSP頁面中使用taglib指令引入標(biāo)記庫使用JSTL標(biāo)記,完成特定功能。舉例:demo1.jsp<%@pagecontentType="text/html"%><%@pagepageEncoding="UTF-8"%><%@taglib
uri="http:///jsp/jstl/core"prefix="c"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>demo1.jsp</title></head><body><center>JSTL測(cè)試<c:outvalue="${1+1}"/></center></body></html>運(yùn)行效果圖8.2Core標(biāo)記庫core標(biāo)記庫:用來實(shí)現(xiàn)Web應(yīng)用中最常用的功能,在JSTL的5個(gè)標(biāo)記庫中,core標(biāo)記庫是最基礎(chǔ)的標(biāo)記庫,其它標(biāo)記庫都是在core標(biāo)記庫的協(xié)同下來實(shí)現(xiàn)自身功能。Core標(biāo)記庫的內(nèi)容在core標(biāo)記庫中,主要包含以下幾類標(biāo)記:通用標(biāo)記:<c:out>、<c:set>、<c:remove>、<c:catch>。條件標(biāo)記:<c:if>、<c:choose>、<c:when>、<c:otherwise>。迭代標(biāo)記:<c:forEach>、<c:forTokens>。URL標(biāo)記:<c:import>、<c:url>、<c:redirect>、<c:param>。1.通用標(biāo)記<c:out>標(biāo)記<c:out>標(biāo)記:負(fù)責(zé)把變量或表達(dá)式的計(jì)算結(jié)果輸出,其功能與調(diào)用out.println()基本一致。<c:out>可以包含標(biāo)記體內(nèi)容,也可以不包含。當(dāng)不包含體內(nèi)容時(shí),語法格式如下:<c:outvalue=“var”[escapeXml]=“{true|false}”[default=“defaultValue”]/>其中屬性default的值為當(dāng)變量var不存在時(shí),標(biāo)記缺省顯示的內(nèi)容。當(dāng)包含體內(nèi)容時(shí),標(biāo)記<c:out>的語法格式如下:<c:outvalue=“var”[escapeXml]=“{true|false}”>
這里是BODY,可以是任何合法的jsp或者是html代碼。</c:out>程序7-2:c_out.jsp<%@pagecontentType="text/html"%><%@pagepageEncoding="UTF-8"%><%@taglibprefix="c"uri="http:///jsp/jstl/core"%><html><head><title>JSTL:c:out的使用</title></head><bodybgcolor="#FFFFFF"><hr><c:set
var="sessionAttr"value="Iaminsession"scope="session"/><c:set
var="pageAttr"value="Iaminpage"scope="page"/><c:set
var="requestAttr"value="Iaminrequest"scope="request"/><c:outvalue="以下輸出的是前面設(shè)置的屬性<br>"escapeXml="false"/><c:outvalue="${sessionAttr}"/><br><c:outvalue="${pageAttr}"/><br><c:outvalue="${requestAttr}"/><br><c:outvalue="${test_A}"default="沒有test這個(gè)變量"/><br><c:outvalue="${sessionAttr}">
對(duì)不起,sessionAttr變量不存在
</c:out><br><c:outvalue="${test_B}">
對(duì)不起,test_B變量不存在
</c:out></html><c:set>標(biāo)記:用于在某個(gè)范圍(page,request,session或application)里面設(shè)置特定的變量,或者設(shè)置某個(gè)已經(jīng)存在的Javabean的屬性。其功能類似于<%request.setAttribute(“name”,value)%>。當(dāng)不包含標(biāo)記體內(nèi)容時(shí),語法如下:<c:setvalue=“value”var=“varName”[scope=“{page|request|session|application}”]/>其中:屬性var為設(shè)置的變量的名稱,value為變量的值,scope為可選屬性,表示設(shè)置變量的范圍,缺省為page。<c:set>標(biāo)記當(dāng)標(biāo)記包含體內(nèi)容時(shí),<c:set>語法如下:<c:set
var=“varName”[scope=“{page|request|session|application}”]> Bodycontent</c:set>由于包含體內(nèi)容時(shí),將采用體內(nèi)容作為變量的初始值,因此,此時(shí)標(biāo)記不能帶有屬性value。<c:remove>標(biāo)記<c:remove>:刪除某個(gè)變量。類似于<%session.removeAttribute(“name”)%>它的語法格式為:
<c:remove
var=“varName”[scope=“{page|request|session|application}”]/>其中:屬性var為要?jiǎng)h除的變量的名稱程序:c_var.jsp<%@pagecontentType=“text/html”%><%@pagepageEncoding=“UTF-8”%><%@taglibprefix=“c”uri=“http:///jsp/jstl/core”%><html><head><title>JSTL:使用c:set</title></head><bodybgcolor=“#FFFFFF”><!-設(shè)置一個(gè)屬性,然后輸出它-><br><c:set
var=“maxCount”value=“100”/><c:outvalue=“${maxCount}”/><!-設(shè)置屬性時(shí),把它的值放在標(biāo)記的body中。-><br><c:set
var=“password”>123456</c:set><c:outvalue=“${password}”/><!-設(shè)置變量,并且指定它們的范圍-><c:setvalue=“20”var=“sessionAttr”scope=“session”/><c:remove
var=“sessionAttr”/><br><c:outvalue=“${sessionAttr}”/></body></html><c:catch>標(biāo)記<c:catch>:捕捉嵌套在它內(nèi)部的標(biāo)記和腳本所拋出的異常。類似于<%try{}catch{}%>。它的語法格式為:<c:catch[var=“varName”]>nestedactions</c:catch>其中可選屬性var用來保存捕捉到的異常信息。程序:c_catch.jsp<%@pagecontentType=“text/html”%><%@pagepageEncoding=“UTF-8”%><%@taglibprefix=“c”uri=“http:///jsp/jstl/core”%><html><head><title>JSTL:catch的使用</title></head><bodybgcolor=“#FFFFFF”><c:catch
var=“error”><%
Integer.parseInt(“hello”);%></c:catch><hr>異常:
<c:outvalue=“${error}”/><hr>異常exception.getMessage=<c:outvalue=“${error.message}”/></body></html>運(yùn)行效果2.Core條件標(biāo)記Core標(biāo)記中提供了以下四個(gè)標(biāo)記來幫助JSP開發(fā)人員實(shí)現(xiàn)分支處理。它們是:<c:if>、<c:choose>、<c:when>和<c:otherwise><c:if>標(biāo)記<c:if>:類似于編程語言中的if–else語句。格式:<c:iftest=“$param.role==1”var=“user”scope=“session”>
Itisadmin.</c:if>功能:若參數(shù)role的值為1,則顯示Itisadmin,并將判斷結(jié)果true保存在user中。<c:choose><c:when><c:otherwise>標(biāo)記<c:choose><c:when><c:otherwise>標(biāo)記:用于實(shí)現(xiàn)復(fù)雜判斷,類似if-else-if語句。格式舉例:<c:choose><c:whentest=“${param.sample==1}”>not2,itis1
</c:when>
<c:whentest=“${param.sample==2}”>
not1,itis2</c:when><c:otherwise>not1,2
</c:otherwise></c:choose>3.core迭代標(biāo)記Core標(biāo)記中的迭代標(biāo)記有兩個(gè):<c:forEach>、<c:forTokens>。<c:forEach>標(biāo)記<c:forEach>標(biāo)記:作用類似for循環(huán)語句。格式舉例:
<c:forEach
var=“i”begin=“1”end=“10”step=“1”>${i}<br/></c:forEach><c:forTokens>標(biāo)記<c:forTokens>:可以根據(jù)某個(gè)分隔符來分隔指定的字符串。格式舉例:<c:forTokens
items=“aa,bb,cc,dd”bengin=“0”end=“2”step=“2”delims=“,”var=“aValue”>${aValue}</c:forTokens>4.Core的URL操作標(biāo)記Core標(biāo)記包含三個(gè)URL操作有關(guān)的標(biāo)記,分別是:<c:import>,和<c:url>,<c:redirect>。另外還有一個(gè)輔助標(biāo)記<c:param>。<c:import>標(biāo)記<c:import>:包含另一個(gè)jsp頁面到本頁面來。格式舉例:<c:import
url=“/MyHtml.html”var=“thisPage”><c:import
url=“/MyHtml.html”var=“thisPage”><c:url>標(biāo)記<c:url>:用于得到一個(gè)URL地址。格式舉例:<c:urlvalue=“/MyHtml.html”var=“urlPage”/><a
href=“${urlPage}”>鏈接</a><c:redirect>標(biāo)記<c:redirect>:用于頁面的重定向。格式舉例:<c:redirect
url=“/MyHtml.html”/><c:param>標(biāo)記<c:param>:用來為包含或重定向的頁面?zhèn)鬟f參數(shù),一般和<c:import>和<c:redirect>配合使用。格式舉例:<c:redirect
url=“/MyHtml.jsp”/><c:paramname=“username”value=“Tom”/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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年前列腺射頻治療儀系統(tǒng)行業(yè)深度研究分析報(bào)告
- 2025年船用裝飾材料項(xiàng)目投資可行性研究分析報(bào)告-20241226-205913
- 以租代買房合同范本
- 個(gè)人銷售欠款合同范本
- 關(guān)于公司承包合同范本
- 2025年度道路劃線施工與交通信號(hào)優(yōu)化合同范本
- 一汽解放車銷售合同范本
- 代理電商合同范本
- 代建房合同范本
- 新目標(biāo)(goforit)版初中英語九年級(jí)(全一冊(cè))全冊(cè)教案-unit
- 《如何做一名好教師》課件
- 2016-2023年婁底職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 貴陽市2024年高三年級(jí)適應(yīng)性考試(一)一模英語試卷(含答案)
- 地理標(biāo)志專題通用課件
- 魚類和淡水生態(tài)系統(tǒng)
- 全國(guó)大學(xué)高考百科匯編之《哈爾濱工業(yè)大學(xué)》簡(jiǎn)介
- 學(xué)校安全教育教你如何遠(yuǎn)離危險(xiǎn)
- 【人教版】九年級(jí)化學(xué)上冊(cè)全冊(cè)單元測(cè)試卷【1-7單元合集】
- 中國(guó)傳統(tǒng)文化課件6八卦五行
- 《胃癌課件:病理和分子機(jī)制解析》
評(píng)論
0/150
提交評(píng)論