JavaWeb程序設(shè)計(jì) 課件 ch11 EL JSTL_第1頁
JavaWeb程序設(shè)計(jì) 課件 ch11 EL JSTL_第2頁
JavaWeb程序設(shè)計(jì) 課件 ch11 EL JSTL_第3頁
JavaWeb程序設(shè)計(jì) 課件 ch11 EL JSTL_第4頁
JavaWeb程序設(shè)計(jì) 課件 ch11 EL JSTL_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第11章EL&JSTL本課教學(xué)內(nèi)容認(rèn)識(shí)表達(dá)式語言基本運(yùn)算符數(shù)據(jù)訪問認(rèn)識(shí)JSTL核心標(biāo)簽庫XML標(biāo)簽庫的簡(jiǎn)介國(guó)際化標(biāo)簽庫簡(jiǎn)介數(shù)據(jù)庫標(biāo)簽簡(jiǎn)介函數(shù)標(biāo)簽庫簡(jiǎn)介認(rèn)識(shí)表達(dá)式語言EL全名為ExpressionLanguage,原本是JSTL1.0(JavaServerPagesStandardTagLibrary)為方便存取數(shù)據(jù)所自定義的語言,后來成了JSP標(biāo)準(zhǔn)的一部分,如今EL已經(jīng)是一項(xiàng)成熟、標(biāo)準(zhǔn)的技術(shù)認(rèn)識(shí)表達(dá)式語言EL的中文名稱為表達(dá)式語言,很顯然,和表達(dá)式應(yīng)該具有一些聯(lián)系。<%=變量名%>是典型的表達(dá)式,其用于將變量顯示在客戶端;同理,<%out.print(變量名)%>和其作用相同。EL具有與表達(dá)式相同的輸出的功能,另外其還具有簡(jiǎn)單的運(yùn)算符、訪問對(duì)象、簡(jiǎn)單的JavaBean訪問、簡(jiǎn)單的集合訪問功能表達(dá)式語言基本語法EL語法

${sessionScope.user.sex}上述EL范例的意思是:從session的范圍中,取得用戶的性別。顯然,使用了EL,需要編寫輸出信息的代碼時(shí),代碼量少了,工作的效率自然會(huì)提高。 綜上所述,EL最基本的語法結(jié)構(gòu)是:

${Expression}基本運(yùn)算符-和[]運(yùn)算符EL提供了兩種實(shí)現(xiàn)對(duì)相應(yīng)數(shù)據(jù)存取的運(yùn)算符:.(點(diǎn)操作)和[]操作${sessionScope.user.sex} 等價(jià)于

Stringstr="sex";${sessionScope.user[str]}基本運(yùn)算符以下兩種情況.和[]運(yùn)算符不能互換當(dāng)要存取的數(shù)據(jù)的名稱中包含一些特殊字符(即非字母或數(shù)字符號(hào))時(shí),只能使用[]運(yùn)算符

${sessionScope.user["user-sex"]}

不能寫成

${sessionScope.user.user-sex}基本運(yùn)算符以下兩種情況.和[]運(yùn)算符不能互換 當(dāng)動(dòng)態(tài)取值時(shí),只能使用[],例如:

${sessionScope.user[param]}

算術(shù)運(yùn)算符EL中常見的運(yùn)算符算術(shù)運(yùn)算符說明范例結(jié)果+加${17+5}22-減${17-5}12*乘${17*5}85/或div除${17/5}${17div5}3%或mod余數(shù)${17%5}或者${17mod5}2關(guān)系運(yùn)算符EL的關(guān)系運(yùn)算符關(guān)系運(yùn)算符說明范例結(jié)果==或eq等于${5==5}或${5eq5}true!=或ne不等于${5!=5}或${5ne5}false<或lt小于${5<5}或${5lt5}false>或gt大于${5>5}或${5gt5}false<=或le小于等于${5<=5}或${5le5}true>=或ge大于等于${5>=5}或${5ge5}true邏輯運(yùn)算符EL運(yùn)算中的邏輯運(yùn)算符邏輯運(yùn)算符說明范例結(jié)果&&或and與${A&&B}或${AandB}true/false||或or或${A||B}或${AorB}true/false!或not非${!A}或${notA}true/false其他運(yùn)算符EL運(yùn)算中還有其他常用的運(yùn)算符 條件運(yùn)算符?;菊Z法如下:

${A?B:C}

上面語法的意思是,如果A為真的話,則整個(gè)表達(dá)式的值為B的值,否則就是C的值其他運(yùn)算符EL運(yùn)算中還有其他常用的運(yùn)算符

empty運(yùn)算符?;菊Z法如下:

${emptyA} empty運(yùn)算符的規(guī)則是:如果A為null時(shí),返回true;如果A不存在時(shí),返回true;如果A為空字符串時(shí),返回true;如果A為空數(shù)組時(shí),返回true;否則,返回false數(shù)據(jù)訪問對(duì)象的作用域作用域類型說明pageScopejava.util.Map取得page范圍的屬性名稱所對(duì)應(yīng)的值requestScopejava.util.Map取得request范圍的屬性名稱所對(duì)應(yīng)的值sessionScopejava.util.Map取得session范圍的屬性名稱所對(duì)應(yīng)的值applicationScopejava.util.Map取得application范圍的屬性名稱所對(duì)應(yīng)的值訪問JavaBean使用EL表達(dá)式訪問JavaBean,基本語法如下

${perty}*具體的代碼示例見課本訪問集合使用EL表達(dá)式來獲取集合數(shù)據(jù),其基本語法如下:

${collection[elementName]}其他隱含對(duì)象常見的其他的隱含對(duì)象其他隱含對(duì)象常用的param對(duì)象獲得參數(shù)。如:

<ahref="paramExample2.jsp?m=3&n=4"/>到達(dá)paramExample2.jsp頁面cookie對(duì)象獲得值。如:

${cookie.account.value}認(rèn)識(shí)JSTLJSTL是標(biāo)準(zhǔn)的已制定好的標(biāo)簽庫,可以應(yīng)用于各種領(lǐng)域,如:基本輸入輸出、流程控制、循環(huán)、XML文件剖析、數(shù)據(jù)庫查詢及國(guó)際化和文字格式標(biāo)準(zhǔn)化等應(yīng)用認(rèn)識(shí)JSTLJSTL所提供的標(biāo)簽庫主要分為五大類認(rèn)識(shí)JSTL使用JSTL必須使用taglib指令,taglib指令的作用是聲明JSP文件使用的標(biāo)簽庫,同時(shí)引入該標(biāo)簽庫,并指定標(biāo)簽的前綴。以聲明核心標(biāo)簽庫core為例,其基本語法如下:

<%@taglibprefix="c"uri="/jsp/jstl/core"%>

核心標(biāo)簽庫核心標(biāo)簽庫分類用核心標(biāo)簽進(jìn)行基本數(shù)據(jù)操作用核心標(biāo)簽庫基本數(shù)據(jù)操作標(biāo)簽

<c:out>標(biāo)簽主要用來顯示數(shù)據(jù)的內(nèi)容,就像是<%=表達(dá)式%>一樣,其基本語法格式

<c:outvalue="變量名"></c:out> <c:set>標(biāo)簽用于對(duì)變量或JavaBean中的變量屬性賦值。<c:set>標(biāo)簽中包含以下的屬性:value、target、property、var以及scope。如:<c:setvalue="歡迎"scope="session"var="msg"></c:set> <c:outvalue="${msg}"></c:out>

用核心標(biāo)簽進(jìn)行基本數(shù)據(jù)操作 <c:remove>標(biāo)簽用于刪除存在于scope中的變量。<c:remove/>標(biāo)簽中包含兩個(gè)屬性:var以及scope,分別表示需要?jiǎng)h除的變量名以及變量的作用范圍。如下代碼:

<%session.setAttribute("msg","歡迎"); %><c:removevar="msg"scope="session"/>用核心標(biāo)簽進(jìn)行流程控制<c:if>標(biāo)簽用于簡(jiǎn)單的條件語句。其基本語法如下:

<c:iftest="${判斷條件}"> </c:if>用核心標(biāo)簽進(jìn)行流程控制<c:choose>、<c:when>和<c:otherwise>這三個(gè)標(biāo)簽通常會(huì)一起使用,它們用于實(shí)現(xiàn)復(fù)雜條件判斷語句,類似"if-elseif"的條件語句。它們的基本用法如下:

<c:choose> <c:whentest="${條件1}">體</c:when>

用核心標(biāo)簽進(jìn)行流程控制<c:forEach>為循環(huán)控制標(biāo)簽,功能是將集合(Collection)中的成員順序?yàn)g覽一遍,在實(shí)際應(yīng)用開發(fā)中,其使用頻率最高?;菊Z法如下:<c:forEachvar="元素名"items="集合名"begin="起始"end="結(jié)束"step="步長(zhǎng)">代碼段 </c:forEach>

用核心標(biāo)簽進(jìn)行流程控制<c:forTokens>標(biāo)簽是用來瀏覽字符串中所有的成員,其成員是由分隔符delims所分隔的。其基本語法如下:

<c:forTokensitems="字符串"delims="分隔符"var="子串名" begin="起始"end="結(jié)束"step="步長(zhǎng)"> 代碼段 </c:forTokens>

XML標(biāo)簽庫簡(jiǎn)介XML標(biāo)簽庫分類XML標(biāo)簽庫簡(jiǎn)介這些標(biāo)簽的基本功能如下: 1:<x:parse>:解析XML文件 2.<x:out>:在<x:parse>解析后保存的變量中取得指定的XML文件內(nèi)容,并顯示在頁面 3.<x:set>:將某個(gè)XML文件中元素的實(shí)體內(nèi)容或?qū)傩员4娴阶兞恐?4.<x:if>:由XPath的判斷得到結(jié)果,根據(jù)情況決定是否顯示其標(biāo)簽所包含的內(nèi)容 5.<x:choose>、<x:when>和<x:otherwise>:通常會(huì)放在一起使用,功能跟核心標(biāo)簽庫中的<c:choose>、<c:when>和<c:otherwise>相似,也是提供"if-elseif"語句的功能6.<x:forEach>:對(duì)XML文件元素進(jìn)行循環(huán)控制國(guó)際化標(biāo)簽庫簡(jiǎn)介國(guó)際化標(biāo)簽庫簡(jiǎn)介國(guó)際化標(biāo)簽庫簡(jiǎn)介最常見的標(biāo)簽功能如下:1.<fmt:setLocale>:用來設(shè)置Locale環(huán)境2.<fmt:bundle>和<fmt:setBundle>:對(duì)資源文件進(jìn)行綁定3.<fmt:message>:顯示資源文件中定義的消息4.<fmt:param>:位于<fmt:message>標(biāo)簽內(nèi),為該消息提供參數(shù)值5.<fmt:requestEncoding>:為請(qǐng)求設(shè)置字符編碼6.<fmt:timeZone>和<fmt:setTimeZone>:用于設(shè)定時(shí)區(qū)7.<fmt:formatNumber>:對(duì)數(shù)字進(jìn)行格式化8.<fmt:parseNumber>:用于解析數(shù)字,其功能與<fmt:formatNumber>標(biāo)簽正好相反9.<fmt:formatDate>:用于格式化日期10.<fmt:parseDate>:功能與<fmt:formatDate>標(biāo)簽相反數(shù)據(jù)庫標(biāo)簽庫簡(jiǎn)介數(shù)據(jù)庫標(biāo)簽庫可以為程序員提供在JSP程序中與數(shù)據(jù)庫進(jìn)行交互的功能。然而,由于與數(shù)據(jù)庫的交互的工作本身屬于業(yè)務(wù)邏輯層,因此,數(shù)據(jù)庫標(biāo)簽庫其實(shí)是違背了多層框架的思想。數(shù)據(jù)庫標(biāo)簽庫包含6個(gè)標(biāo)簽:<sql:setDateSource>、<sql:query>、<sql:update>、<sql:transaction>、<sql:param>以及<sql:dateParam>函數(shù)標(biāo)簽庫簡(jiǎn)介函數(shù)標(biāo)簽庫分類函數(shù)標(biāo)簽庫簡(jiǎn)介函數(shù)標(biāo)簽庫的基本使用<fn:length>

${fn:length(對(duì)象)}<fn:contains>

${fn:contains("源字符串","子字符串")}

<fn:containsIgnoreCase>

${fn:containsIgnoreCase("源字符串","子字符串")}函數(shù)標(biāo)簽庫簡(jiǎn)介函數(shù)標(biāo)簽庫的基本使用<fn:startsWith>

${fn:startsWith("源字符串","指定字符串")}<fn:endsWith>

${fn:endsWith("源字符串","指定字符串")}<fn:escapeXml>

${fn:escapeXml(特殊字符)}函數(shù)標(biāo)簽庫簡(jiǎn)介函數(shù)標(biāo)簽庫的基本使用<fn:indexOf>

${fn:indexOf("源字符串","指定字符串")}<fn:join>:

${fn:join(數(shù)組,"分隔符")}<fn:replace>

${fn:replace("源字符串","被替換字符串","替換字符串")}函數(shù)標(biāo)簽庫簡(jiǎn)介函數(shù)標(biāo)簽庫的基本使用<fn:split>

${fn:split("源字符串","分隔符")}<fn:substring>

${fn:substring("源字符串",起始位置,結(jié)束位置)}<fn:substringAfter>

${fn:substringAfter("源字符串","子字符串")}函數(shù)標(biāo)簽

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論