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