




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
8.1JSTL簡介JSTL(JSPStandardTagLibrary)
:JSP標(biāo)準(zhǔn)標(biāo)記庫.JSTL目前已有三個(gè)版本:Standard-1.0Taglib、Standard-1.1Taglib、jstl-1.2Taglib。Standard-1.0Taglib(JSTLl.0)支持Servlet2.3和JSP1.2規(guī)范,Tomcat4支持這些規(guī)范
Standard-1.1Taglib(JSTLl.1)支持Servlet2.4和JSP2.0規(guī)范,Tomcat5支持這規(guī)范
JSTL1.2支持servlet2.5和JSP2.1的規(guī)范,
Tomcat6支持這規(guī)范
8.2Core標(biāo)記庫Core標(biāo)記庫一共有14個(gè)標(biāo)記,分4類:(1)通用標(biāo)記:<c:out>、<c:set>、<c:remove>、<c:catch>;(2)條件處理標(biāo)記:<cif>、<c:choose>、<c:when>、<c:otherwise>;(3)循環(huán)控制標(biāo)記:<c:forEach>、<c:forTokens>.;(4)URL相關(guān)標(biāo)記:<c:import>、<c:url>、<credirect>、<c:param>。8.2.1通用標(biāo)記1.<c:out>標(biāo)記:<c:outvalue="expression"default="expression"escapeXml="boolean"/>2.<c:set>標(biāo)記<c:setvalue="expression"var="varname"scope="scope"/>3.<c:remove>標(biāo)記<c:removevar="name"scope="scope"/>4.<c:catch>標(biāo)記<c:catchvar="name">value:輸出到頁面的數(shù)據(jù)??梢允荅L表達(dá)式或常量
var:被賦值的變量名
;Value:值的信息;scope:變量的作用范圍
源文件:c_out.jsp<%@pagecontentType="text/html;charset=gb2312"language="java"%><%@taglibprefix="c"uri="/jsp/jstl/core"%><html><head><title>JSTL:c:out的使用</title></head><bodybgcolor="#FFFFFF"><hr><c:setvar="sessionAttr"value="sessionValue"scope="session"/><c:setvar="pageAttr"value="pageValue"scope="page"/><c:setvar="requestAttr"value="requestValue"scope="request"/><c:outvalue="以下輸出的是前面設(shè)置的屬性<br>"escapeXml="false"/><c:outvalue="${sessionAttr}"/><br><c:outvalue="${pageAttr}"/><br><c:outvalue="${requestAttr}"/><c:outvalue="${test_nodef}"default="沒有test_nodef這個(gè)變量"/><br></body></html>8.2.1通用標(biāo)記-案例8.2.2條件處理1.<c:if>標(biāo)記<c:iftest="testCondition"var="varName"[scope="page|request|session|application"]>Bodycontent</c:if>2.<c:choose>標(biāo)記、<c:when>標(biāo)記、<c:otherwise>
<c:choose>
<c:whentest="testCondition"
>bodycontent
</c:when>…
<c:otherwise>bodycontent
</c:otherwise>
</c:chosse>test:測試條件;var:保存判斷結(jié)果
<jsp:useBeanid="date"class="java.util.GregorianCalendar"/><c:setvar="time"value="<%=date.get(GregorianCalendar.AM_PM)%>"/><c:iftest="${time==0}">
早上好</c:if><c:iftest="${time==1}">
下午好</c:if>1.<c:forEach>標(biāo)記語法格式1:遍歷集合對象中的所有成員:<c:forEachitems="collection”[var="varName"][varStastus="varStatusNarne"]>bodycontent</c:forEach>語法格式2:循序指定的次數(shù):<c:forEach[var="varName”][varStastus="varStatusName"][begin="begin"end="end"][step="step"]>bodycontent<c:forEarh>8.2.3循環(huán)控制items:進(jìn)行循環(huán)的集合
var:做循環(huán)的對象變量名
varStatus:顯示循環(huán)狀態(tài)的變量源程序:c_forEach.jsp<%@pagelanguage="java"import="java.util.*"pageEncoding="gb2312"%><%@taglibprefix="c"uri="/jsp/jstl/core"%><html><head><title>JSTL::c:forEach的使用</title></head><%ArrayListarrayList=newArrayList();ArrayList.add("aa");ArrayList.add("bb");
arrayList.add
("cc"
)
;request.getSession().setAttribute("arrayList",arrayList);%><body>
<c:forEachitems="${sessionScope.arrayList}"var="temp">${temp}</c:forEach></body></html>8.2.3循環(huán)控制-案例1.<c:url>標(biāo)記:用于URL重寫<c:urlvalue="expression"[context="context"][var="varName"]
[scope="page|request|session|application"]>[<c:paramname="expression"value="expression"/>]</c:url>8.2.4URL標(biāo)記2.<c:import>標(biāo)記:類似JSP的<jsp:incluse>動(dòng)作<c:importurl="url"[charEncoding="charEncoding"]>[<c:paramname="expression"value="expression"/>]</c:import>3.<c:redirect>標(biāo)記:相當(dāng)于response.setRedirect的作用
<c:redirecturl="value“>[<c:paramname="expression"value="expression"/>]</c:redirect>value:用來指定基本URL
var:存儲(chǔ)URL的變量名
url:需要導(dǎo)入頁面的URL
url:需要重定向的URL
8.3.I18N標(biāo)記庫I18N標(biāo)記庫就是用于在JSP頁面中做國際化的動(dòng)作。該標(biāo)記庫中的標(biāo)記一共有12個(gè),分為兩類,如下所示。(1)國際化標(biāo)記:<fmt:setLocale>、<fmt:bundle>、<fmt:setBundle>、<fmt:message>、<fmt:param>、<fmt:requestEncoding>。(2)格式化標(biāo)記:<fmt:timeZone>、<fmt:setTimeZone>、<fmt:formatNumber>、<fmt:parseNumber>、<fmt:formatDate>、<fmt:parseDate>。8.3.1國際化標(biāo)記1.<fmt:setLocale>標(biāo)記:用于設(shè)置本地化環(huán)境<fmt:setLocalevalue="locale"[scope="{page|request|session|application}"]/>locale
:是命名該語言環(huán)境的名稱。語言環(huán)境名稱是這樣組成的:小寫的兩字母表示ISO語言代碼,后面可以跟下劃線或連字符以及大寫的兩字母以表示ISO國家或地區(qū)代碼。scope:用來指定value的作用域<fmt:setLocalevalue="zh_TW"/>表示設(shè)置本地環(huán)境為繁體中文(中國臺(tái)灣省)。<fmt:setLocalevalue="zh_CN"scope=”session”/>表示設(shè)置本地環(huán)境為簡體中文。8.3.1國際化標(biāo)記2.<fmt:bundle>標(biāo)記:用于資源配置文件的綁定<fmt:bundlebasename="basename"[prefix="prefix"]>bodycontent</fmt:bundle>3.<fmt:setBundle>標(biāo)記<fmt:setBundlebasename="basename"[var="varName"][scope="{page|request|session|application}"]/>basename:資源配置文件的指定,只需要指定文件名而無須擴(kuò)展名。prefix:消息前綴
它與<fmt:bundle>的區(qū)別在于,<fmt:bundle>標(biāo)記將資源配置文件綁定在標(biāo)記體中顯示,<fmt:setBundle>標(biāo)記則允許將資源配置文件保存為一個(gè)變量
8.3.1國際化標(biāo)記4.<fmt:message>標(biāo)記:顯示資源配置文件中定義的信息<fmt:messagekey="messageKey"[bundle="resourceBundle'][var=="varName"][scope='{page|request|session|application}"]><fmt:paramvalue="paramValue"/>]</fmt:message>5.<fmt:param>標(biāo)記<fmt:paramvalue="paramValue"/>key:資源配置文件的“鍵”指定var:將顯示信息保存為一個(gè)變量(如果沒有指定var屬性,顯示信息直接輸出)bundle:若使用<fmt:setBundle>保存了資源配置文件,該屬性就可以從保存的資源配置文件中進(jìn)行查找6.<fmt:requestEncoding>標(biāo)記<fmt:requestEncodingvalue="charsetName"/>
8.3.1國際化標(biāo)記-案例applicationMpertieslogin.userName=userNamelogin.password=passwordlogin.title=loginlogin.submit=loginlogin.cancel=cancel基本資源文件applicationMessage_zh_CN.propertieslogin.userName=\u7528\u6237\u540Dlogin.password=\u5BC6\u7801login.title=\u767B\u5F55login.submit=\u63D0\u4EA4login.cancel=\u53D6\u6D88中文資源文件applicationMessage.txtlogin.userName=用戶名login.password=密碼login.title=登錄login.submit=登錄login.cancel=取消在命令行窗口,輸入下面的命令:D:\>native2ascii.exeapplicationMessage.txtapplicationMessage_zh_CN.properties<fmt:setBundlebasename="applicationMessage"var="applicationBundle"/><html><head><title>
<fmt:messagekey="login.title"bundle="${applicationBundle}"/></title>
</head><body><formaction=""><fmt:bundlebasename="applicationMessage"prefix="login."><fmt:messagekey="userName"/><inputtype="text"name="userName"><p>
<fmt:messagekey="password"/><inputtype="password"name="password"><p><inputtype="submit"value="<fmt:messagekey='submit'/>"><inputtype="reset"value="<fmt:messagekey='submit'/>"></fmt:bundle></form></body></html>8.3.1國際化標(biāo)記-案例添加<fmt:setLocalevalue=“en”/>標(biāo)記或在非中文客戶端訪問的結(jié)果添加<fmt:setLocalevalue=“zh”/>標(biāo)記或在中文客戶端訪問的結(jié)果8.3.1國際化標(biāo)記-案例8.3.2格式化標(biāo)記1.<fmt:timeZone>標(biāo)記:用于設(shè)定時(shí)區(qū)<fmt:timeZonevalue="timeZone">bodycontent</fmt:timeZone>2.<fmt:setTimeZone>標(biāo)記<fmt:setTimeZonevalue="timeZone"[var="varName"][scope="{page|request|session|application}"]/>timeZone:時(shí)區(qū)代碼與<fmt:timeZone>的區(qū)別是:<fmt:timeZone>標(biāo)記將使得在其標(biāo)記體內(nèi)的工作可以使用該時(shí)區(qū)設(shè)置,<fmt:setTimeZone>標(biāo)記則允許將時(shí)區(qū)設(shè)置保存為一個(gè)變量,在之后的工作可以根據(jù)該變量來進(jìn)行3.<fmt:formatNumber>標(biāo)記<fmt:formatNumbervalue="numericValue"[type="{number|currency|percent}"][pattern="customPattern"][currencyCode="currencyCode"][currencySymbol="currencySymbol"][groupingUsed="{true|false}"][maxIntegerDigits="maxIntegerDigits"][minIntegerDigits="minIntegerDigits][maxFractionDigits="maxFractionDigits"][minFractionDigits="minFractionDigits"][var="varName"][scope="{page|request|session|application}]/>8.3.2格式化標(biāo)記type:取值為number、currency、percent之一
pattern:格式化模式
例如:<fmt:formatNumbervalue="1000.888"type="currency"var="money"/>${money}該結(jié)果將被保存在money變量中,將根據(jù)Locale環(huán)境顯示當(dāng)?shù)氐呢泿鸥袷?。如果沒有設(shè)置Locale,在中文客戶端瀏覽器中的結(jié)果為:¥1,000.89符號
意義0
一個(gè)數(shù)位#
一個(gè)數(shù)位,前導(dǎo)零和追尾零不顯示.
小數(shù)點(diǎn)分割位置,
組分隔符的位置-
負(fù)數(shù)前綴%
用100乘,并顯示百分號pattern:格式化模式
例:<fmt:formatNumbervalue="123456.7"pattern="#,#00.0#"/>該例顯示結(jié)果為:123,456.7。8.3.2格式化標(biāo)記4.<fmt:parseNumber>標(biāo)記<fmt:parseNumbervalue="numericValue"[type="{number|currency|percent}"][pattern="customPattern"][parseLocale="parseLocale"][integerOnly="{true|false}"][var="varName"][scope="{page|request|session|application}"]/>例如:<fmt:parseNumbervalue="15%"type="percent"var="num"/>解析之后的結(jié)果為0.15。8.3.2格式化標(biāo)記5.<fmt:formatDate>標(biāo)記:用于格式化日期<fmt:formatDatevalue="date"[type="{time|date|both}"][dateStyle="{default|short|medium|long|full}"][timeStyle="{default|short|medium|long|full)"][pattern="customPattern"][timeZone="timeZone"][var="varName"][scope="{page|request|session|application}"]/>例如:
<%request.setAttribute("date1",newDate());%>
<fmt:formatDatevalue="${date1}"pattern="yyyy-MM-ddhh:mm:ss"type="date"dateStyle="long"/>注:時(shí)間pattern表示方法:hh:mm:ss按12小時(shí)制顯示,HH:MM:SS按24小時(shí)制顯示。8.4SQL標(biāo)記庫1.<sql:setDataSource>標(biāo)記用于設(shè)置數(shù)據(jù)源。有兩種語法格式,一種是JNDI數(shù)據(jù)源(由WEB服務(wù)器提供),一種是JDBC數(shù)據(jù)源。語法格式1-JNDI數(shù)據(jù)源:
<sql:setDataSourcedataSource="dataSource"[var="varName"][scope="scope"]/>語法格式2-JDBC數(shù)據(jù)源:
<sql:setDataSourceurl="jdbcUrl"driver="driverClassName"user="userName"password="password"[var="varName"][scope="scope"]/>dataSource:為WEB服務(wù)器中配置的數(shù)據(jù)源(參考例8-9)
driver:jdbc驅(qū)動(dòng)url:數(shù)據(jù)庫的URLuser:用戶password:密碼8.4SQL標(biāo)記庫2.<sql:query>標(biāo)記:用于查詢數(shù)據(jù)庫語法格式l:<sql:querysql="sqlQuery"var="varName"[scope="scope"][dataSource="dataSource"][maxRows="maxRows"][startRow="startRow"]/>語法格式2:<sql:queryvar="varName"[scope="scope"][dataSource="dataSource"][maxRows="maxRows"][startRow="startRow"]>query<sql:param></sql:query>dataSource:數(shù)據(jù)來源sql:查詢語句var:查詢結(jié)果保存變量該語法可以通過<sql:param>給SQL語句傳遞參數(shù)8.4SQL標(biāo)記庫3.<sql:param>標(biāo)記:用于設(shè)置SQL預(yù)處理語句中的參數(shù)<sql:paramvalue="value"/>或:<sql:param>value</sql:param>4.<sql:dateParam>標(biāo)記<sql:dateParam>標(biāo)記用于向SQL語句傳遞java.util.Date類型的參數(shù)。語法格式如下:<sql:dateparamvalue="value"[type="date|time|timestamp"]/>Value:表示參數(shù)值只用于傳日期參數(shù)8.4SQL標(biāo)記庫5.<sql:update>標(biāo)記:用于更新數(shù)據(jù)庫它的標(biāo)記體內(nèi)可以是一句SQL更新語句。其使用和<sql:query>標(biāo)記沒有什么不同6.<sql:transaction>標(biāo)記:用于數(shù)據(jù)庫的事務(wù)處理<sql:transaction[dataSource="dataSource"][isolation="read_committed|read_uncommitted|repeatable_read|serializable"]<sql:query>or<sql:update><sql:transaction>8.4SQL標(biāo)記庫-案例例8-9:利用SQL標(biāo)記查詢數(shù)據(jù)庫數(shù)據(jù)(1)把MySQL的JDBC驅(qū)動(dòng)拷貝到Tomcat安裝目錄\common\lib目錄下。(2)配置數(shù)據(jù)庫連接池:在Tomcat安裝目錄/conf目錄下,找到server.xml,并用記事本或?qū)懽职宕蜷_,在其中添加下面這段代碼:<Contextpath="/JstlTest"docBase="JstlTest"debug="5"reloadable="true"crossContext="true"><Resourcename="myds"auth="Container"type="javax.sql.DataSource"maxActive="5"maxIdle="3"maxWait="10000"username="root"password="root"driverClassName="com.mysql.jdbc.Driver"url="jdbc:mysql://localhost:3306/mytest?autoReconnect=true"/></Context>Tomcat數(shù)據(jù)庫連接池配置(3)新建一個(gè)JSP文件,文件名為sqlQuery.jsp。代碼如下:8.4SQL標(biāo)記庫-案例<%@pagepageEncoding="gb2312"%><%@taglibprefix="c"uri="/jsp/jstl/core"%><%@taglibprefix="sql"uri="/jsp/jstl/sql"%><html><head><title>sqlquery</title></head><body><h1>學(xué)生信息瀏覽</h1>
<sql:setDataSourcedataSource="myds"var="mysql"/>
<sql:querysql="selectsno,snamefromstudents"var="rs"dataSource="${mysql}"/><tableborder="1"width="200px"><tr><th>學(xué)號</th><th>姓名</th></tr><c:forEachvar="row"items="${rs.rows}">
<tr><td>${row.sno}</td><td>${row.sname}</td></tr></c:forEach></table></body></html>8.5XML標(biāo)記庫XMLprocessing標(biāo)記庫為程序設(shè)計(jì)者提供了基本的對XML格式文件的操作。該標(biāo)記庫中一共有10個(gè)標(biāo)記,分為3類。
核心操作標(biāo)記:<x:parse>、<x:out>、<x:set>。流程控制標(biāo)記:<x:if>、<x:choose>、<x:when>、<x:otherwise>、<x:forEach>。轉(zhuǎn)換操作標(biāo)記:<x:transform>、<x:param>。8.5.1核心操作1.<x:parse>標(biāo)記:用于解析XML文件<x:parsedoc="XMLDocument"[var="varName"[scope="scope"]]/>doc:源XML的內(nèi)容var:將解析后的XML保存在該屬性所指定的變量中例如:<c:importvar="xmlFile"url="/SampleXmLxml"/><x:parsevar="parseFile"doc="${xmlFile}"/><c:import>標(biāo)記將源XML文件的內(nèi)容保存在xmlFile變量中.<x:parse>標(biāo)記根據(jù)xmlFile變量的值解析SampleXml.xml。并將解釋后的結(jié)果保存到
parseFile變量中8.5.1核心操作2.<x:out>標(biāo)記:從<x:parse>標(biāo)記解析后保存的變量中取得需要的XML文件內(nèi)容,并顯示在頁面上.
<x:outselect="xPathExpression"[escapeXml="{true|false}"]/>select:XPath表達(dá)式escapeXml:當(dāng)特殊字符如<、>、&、‘、“等出現(xiàn)在取得的結(jié)果字符串中時(shí),是否將以轉(zhuǎn)義字符來替換3.<x:set>標(biāo)記:將某個(gè)源XML中元素的實(shí)體內(nèi)容或?qū)傩员4娴揭粋€(gè)變量中去<x:setselect="xPathExpression"var="varName"[scope="scope"]/>8.5.1核心操作-案例例8-10
:<x:parse>與<x:out>標(biāo)記應(yīng)用示例
book.xml<?xmlversion="1.0"encoding="utf-8"?><xml-body><books><book><title>cobol</title><author>roy</author></book><book><title>java</title><author>herbert</author></book><book><title>c++</title><author>robert</author></book></books></xml-body>xmlTagTest.jsp<%@pagepageEncoding="utf-8"%><%@taglibprefix="c"uri="/jsp/jstl/core"%><%@taglibprefix="x"uri="/jsp/jstl/xml"%><html><head><title>TEST</title></head><body>
<c:importurl="/book.xml"var="xmlFile"/>
<x:parsevar="parseXmlFile"doc="${xmlFile}"/>name:<x:outselect="$parseXmlFile/xml-body/books/book/author"/><br>
</body></html>8.5.2流程控制1.<x:if>標(biāo)記:允許由XPath的boolean()函數(shù)得到的判斷結(jié)果來判斷是否顯示其標(biāo)記所包含的內(nèi)容<x:ifselect=“XPathExpression”var="varName”[scope=“scope"]>Bodycontent</x:if>例如:<c:setvar="s"value="roy"></c:set><c:importurl="/book.xml"var="xmlFile"/><x:parsevar="parseXmlFile"doc="${xmlFile}"/><x:ifselect="$parseXmlFile/xml-body/books/book/author=$s"><x:outselect="$parseXmlFile/xml-body/books/book/title"/></x:if>8.5.2流程控制2.<x:choose>標(biāo)記<x:choose>
bodycontent(<when>and<otherwise>)</x:chosse>3.<x:when>標(biāo)記<x:whenselect=“XPathExpression”>bodycontent</x:when>4.<x:otherwise>標(biāo)記<x:othwise>bodycontent</x:otherwise>8.5.2流程控制5.<x:forEach>標(biāo)記:對XML文件中同一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國非保溫鋼制門行業(yè)市場現(xiàn)狀分析規(guī)劃研究報(bào)告
- 2025-2030年中國除雪車行業(yè)競爭格局及前景趨勢預(yù)測報(bào)告
- 2025-2030年中國防曬品市場運(yùn)行態(tài)勢及投資前景規(guī)劃研究報(bào)告
- 2025-2030年中國鐵水脫硫噴槍市場運(yùn)行現(xiàn)狀及發(fā)展趨勢預(yù)測報(bào)告
- 2025-2030年中國鎢銅市場運(yùn)營狀況及發(fā)展前景分析報(bào)告
- 2025-2030年中國重點(diǎn)地區(qū)文物保護(hù)工程市場十三五規(guī)劃與投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國醬菜、辣白菜未來運(yùn)營趨勢及發(fā)展盈利分析報(bào)告
- 2025-2030年中國藝術(shù)陶瓷行業(yè)市場現(xiàn)狀調(diào)研與前景規(guī)模預(yù)測報(bào)告
- 2025-2030年中國纖維素行業(yè)需求現(xiàn)狀及發(fā)展趨勢分析報(bào)告
- 2025貴州省安全員-B證(項(xiàng)目經(jīng)理)考試題庫
- 中央2025年中國科協(xié)所屬單位招聘社會(huì)在職人員14人筆試歷年參考題庫附帶答案詳解-1
- 中華人民共和國保守國家秘密法實(shí)施條例培訓(xùn)課件
- 2024年全國統(tǒng)一高考英語試卷(新課標(biāo)Ⅰ卷)含答案
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識(shí) CCAA年度確認(rèn) 試題與答案
- 2024年濰坊工程職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 部編版一年級語文下冊全冊分層作業(yè)設(shè)計(jì)
- 化妝品批生產(chǎn)記錄
- Excel數(shù)據(jù)透視表培訓(xùn)PPT課件
- 化工車間布置原則
- 硬筆書法紙(A3)
- 【公開課課件】高三英語二輪復(fù)習(xí)polish writing
評論
0/150
提交評論