分類:
我的著作用于包含頁面的<c:import>
<c:import>標(biāo)簽允許包含另一個(gè)JSP頁面到本頁面來。它的屬性和描述如表9.9所示:
表9.9 <c:import>標(biāo)簽屬性和說明
屬性
描述
url
需要導(dǎo)入頁面的URL
context
Web Context該屬性用于在不同的Context下導(dǎo)入頁面,當(dāng)出現(xiàn)context屬性時(shí),必須以“/”開頭,此時(shí)也需要url屬性以“/”開頭(可選)
charEncoding
導(dǎo)入頁面的字符集(可選)
var
可以定義導(dǎo)入文本的變量名(可選)
scope
導(dǎo)入文本的變量名作用范圍(可選)
varReader
接受文本的java.io.Reader類變量名(可選)
下面看一個(gè)示例。
<c:import url="/MyHtml.html" var="thisPage" />
<c:import url="/MyHtml.html" context=”/sample2” var="thisPage"/>
<c:import url="www.sample.com/MyHtml.html" var="thisPage"/>
該示例演示了三種不同的導(dǎo)入方法,第一種是在同一Context下的導(dǎo)入,第二種是在不同的Context下導(dǎo)入,第三種是導(dǎo)入任意一個(gè)URL。
用于得到URL地址的<c:url>標(biāo)簽
<c:url>標(biāo)簽用于得到一個(gè)URL地址。它的屬性和描述如表9.10所示:
表9.10 <c:url>標(biāo)簽屬性和說明
屬性
描述
value
頁面的URL地址
context
Web Context該屬性用于得到不同Context下的URL地址,當(dāng)出現(xiàn)context屬性時(shí),必須以“/”開頭,此時(shí)也需要url屬性以“/”開頭(可選)
charEncoding
URL的(可選)
var
存儲(chǔ)URL的變量名(可選)
scope
變量名作用范圍(可選)
下面看一個(gè)示例:
<c:url value="/MyHtml.html" var="urlPage" />
<a href="${urlPage}">link</a>
得到了一個(gè)URL后,以EL表達(dá)式放入<a>標(biāo)簽的href屬性,達(dá)到鏈接的目的。
用于頁面重定向的<c:redirect>標(biāo)簽
<c:redirect>用于頁面的重定向,該標(biāo)簽的作用相當(dāng)于response.setRedirect方法的工作。它包含url和context兩個(gè)屬性,屬性含義和<C:url>標(biāo)簽相同。下面看一個(gè)示例。
<c:redirect url="/MyHtml.html"/>
該示例若出現(xiàn)在JSP中,則將重定向到當(dāng)前Web Context下的“MyHtml.html”頁面,一般會(huì)與<c:if>等標(biāo)簽一起使用。
用于包含傳遞參數(shù)的<c:param>標(biāo)簽
<c:param>用來為包含或重定向的頁面?zhèn)鬟f參數(shù)。它的屬性和描述如表9.11所示:
表9.11 <c:param>標(biāo)簽屬性和說明
屬性
描述
name
傳遞的參數(shù)名
value
傳遞的參數(shù)值(可選)
下面是一個(gè)示例:
<c:redirect url="/MyHtml.jsp">
<c:param name="userName" value=”RW” />
</c:redirect>
該示例將為重的“MyHtml.jsp”傳遞指定參數(shù)“userName=’RW’”。
標(biāo)簽庫
在企業(yè)級(jí)應(yīng)用越來越依賴XML的今天,XML格式的數(shù)據(jù)被作為信息交換的優(yōu)先選擇。XML processing標(biāo)簽庫為程序設(shè)計(jì)者提供了基本的對(duì)XML格式文件的操作。在該標(biāo)簽庫中的標(biāo)簽一共有10個(gè),被分為了三類,分別是:
q XML核心標(biāo)簽:<x:parse>、<x:out>、<x:set>。
q XML流控制標(biāo)簽:<x:if>、<x:choose>、<x:when>、<x:otherwise>、<x:forEach>。
q XML轉(zhuǎn)換標(biāo)簽:<x:transform>、<x:param>。
由于該組標(biāo)簽庫專注于對(duì)某一特定領(lǐng)域的實(shí)現(xiàn),因此本書將只選擇其中常見的一些標(biāo)簽和屬性進(jìn)行介紹。
用于解析XML文件的<x:parse>標(biāo)簽
<x:parse>標(biāo)簽是該組標(biāo)簽庫的核心,從其標(biāo)簽名就可以知道,它是作為解析XML文件而存在的。它的屬性和描述如表9.12所示:
表9.12 <x:parse>標(biāo)簽屬性和說明
屬性
描述
doc
源XML的內(nèi)容,該屬性的內(nèi)容應(yīng)該為String類型或者java.io.Reader的實(shí)例,可以用xml屬性來替代,但是不被推薦
var
將解析后的XML保存在該屬性所指定的變量中,之后XML processing標(biāo)簽庫中的其他標(biāo)簽若要取XML中的內(nèi)容就可以從該變量中得到(可選)
scope
變量的作用范圍(可選)
varDom
指定保存的變量為org.w3c.dom.Document接口類型(可選)
scopeDom
org.w3c.dom.Document的接口類型變量作用范圍(可選)
systemId
定義一個(gè)URI,該URI將被使用到XML文件中以接入其他資源文件(可選)
filter
該屬性必須為org.xml.sax.XMLFilter類的一個(gè)實(shí)例,可以使用EL表達(dá)式傳入,將對(duì)XML文件做過濾得到自身需要的部分(可選)
其中,var、scope和varDom、scopeDom不應(yīng)該同時(shí)出現(xiàn),而應(yīng)該被視為兩個(gè)版本來使用,二者的變量都可以被XML processing標(biāo)簽庫的其他標(biāo)簽來使用。
<x:parse>標(biāo)簽單獨(dú)使用的情況很少,一般會(huì)結(jié)合XML processing標(biāo)簽庫中的其他標(biāo)簽來一起工作。下面看一個(gè)示例。
首先給出一個(gè)簡(jiǎn)單的XML文件,將對(duì)該XML文件做解析,該XML文件名為SampleXml.xml。
<?xml version="1.0" encoding="UTF-8"?>
<xml-body>
<name>RW</name>
<passWord>123456</passWord>
<age>28</age>
<books>
<book>book1</book>
<book>book2</book>
<book>book3</book>
</books>
</xml-body>
標(biāo)簽庫的工作:
<c:import var="xmlFile" url="http://localhost:8080/booksamplejstl/SampleXml.xml"/>
<x:parse var="xmlFileValue" doc="${xmlFile}"/>
該讀取XML文件得到了<c:import>標(biāo)簽的幫助,<c:import>標(biāo)簽將源XML文件的內(nèi)容保存在“xmlFile”變量中,<x:parse>標(biāo)簽根據(jù)“xmlFile”變量的值“SampleXml.xml”。