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