版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 罐裝大米知識(shí)培訓(xùn)課件
- 2024版海運(yùn)出口運(yùn)輸合作協(xié)議常用
- 2025標(biāo)識(shí)牌城市形象標(biāo)識(shí)設(shè)計(jì)制作合同3篇
- 2024技術(shù)咨詢服務(wù)標(biāo)準(zhǔn)合同
- 剪輯攝像知識(shí)培訓(xùn)課件
- 2024年版:工程質(zhì)量安全責(zé)任全面保障書3篇
- 2024年魚池租賃與漁業(yè)資源增殖放流合作協(xié)議3篇
- 2024年限定建筑工程木材采購(gòu)協(xié)議版B版
- 家政服務(wù)前臺(tái)總結(jié)
- 2024年離婚合同全方位指南版B版
- 國(guó)開政治學(xué)原理2024春期末綜合練習(xí)題(附答案)
- GB/T 18488-2024電動(dòng)汽車用驅(qū)動(dòng)電機(jī)系統(tǒng)
- 裝配式混凝土建筑預(yù)制疊合板、疊合梁識(shí)圖
- 醫(yī)療科研數(shù)據(jù)管理制度
- 蘇教版三年級(jí)數(shù)學(xué)下冊(cè)全單元測(cè)試題(加答案)
- 副廠長(zhǎng)競(jìng)聘演講稿
- 《小學(xué)五年級(jí)期末家長(zhǎng)會(huì)》課件模板(五套)
- 場(chǎng)地移交表完整版本
- 電影項(xiàng)目策劃書
- 供電公司應(yīng)急演練培訓(xùn)
- 產(chǎn)業(yè)園區(qū)金融綜合服務(wù)創(chuàng)新藍(lán)皮書(2024.1)
評(píng)論
0/150
提交評(píng)論