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}"/>