13.3 xml 标签库及其它

22
13.3 XML 13.3 XML 标标标标标标 标标标标标标 JSP JSP 标标标标标标 标标标标标标

Upload: chayton-pereyra

Post on 15-Mar-2016

29 views

Category:

Documents


4 download

DESCRIPTION

13.3 XML 标签库及其它. JSP 视频教学课程. 目录. 1. XML 标签库. 2. 格式化 / 国际化标签库. 3. 数据库标签库. 4. 函数标签库. 1. XML 标签库. JSTL 的 XML 标签库为程序设计者提供了基本的对 XML 格式文件的操作, XML 标签分为三类,分别是: XML 核心标签: 、 、 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 13.3 XML 标签库及其它

13.3 XML13.3 XML 标签库及其它标签库及其它

JSP JSP 视频教学课程视频教学课程

Page 2: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2 目录 1. XML1. XML 标签库标签库

2. 2. 格式化格式化 // 国际化标签库国际化标签库

3. 3. 数据库标签库数据库标签库

4. 4. 函数标签库函数标签库

Page 3: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2 1. XML标签库 JSTL 的 XML 标签库为程序设计者提供了基本的对 XML 格式文件的操作, XML 标签分为三类,分别是:

XML 核心标签: <x:parse> 、 <x:out> 、 <x:set> XML 流控制标签: <x:if> 、 <x:choose> 、 <x:when> 、

<x:otherwise> 、 <x:forEach> XML 转换标签: <x:transform> 、 <x:param>

要使用 XML 标签需要在 JSP 文件的首部添加如下语句: <%@ taglib prefix=”x”

uri=”http://java.sun.com/jsp/jstl/xml”%>

Page 4: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2 1.1 x:parse标签<x:parse> 标签用来解析 XML 文件。其语法有如下两种:语法一:<x:parse {doc=”xmldocument”|xml=”xmldocument”}{var=”varName” [scope=”page|request|session|application”]|varDom=”varName” [scopeDom=” page|request|session|

application”]}[systemId=”systemId”] [filter=”filter”]/>或<x:parse {var=”varName” [scope=”page|request|session|application”]|varDom=”varName” [scopeDom=” page|request|session|

application”]}[systemId=”systemId”] [filter=”filter”]>

XMLDocument</x:parse>

Page 5: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2

两种形式的区别在于,第二种形式;把 XMLDocument 写在标签体中。参数 XMLDocument 是要解析的 XML 文件内容。其属性描述如下所示。

1.1 x:parse标签

Page 6: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2

其中, var 、 scope 和 varDom 、 scopeDom 不应该同时出现,而应该被视为两个版本来使用,二者的变量都可以被 XML processing 标签库的其他标签来使用。

注意: var 和 varDom 均用于存储解析后 XML 文件的范围变量名,但两者还是有区别的, var 属性的类型取决于实现的方式,而 varDom 属性的类型为org.w3c.dom.Document 。

<x:parse> 标签常与 <c:import> 标签配合使用,如:<c:import var=”testPI” url=”user.xml”/><x:parse doc=”${testPI}” var=”testXML/>或:<x:parse var=”testXML”><c:import url=”user.xml”/></x:parse>

1.1 x:parse标签

Page 7: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2

<x:out> 标签用于根据 XPath 表达式输出 XML 文件中的内容,语法如下: <x:out select=”XPathExpression”

[escapeXML=”true|false”]/> 其中,参数 XPathExpression 为 XPath 表达式, escapeXML 默认值为 true ,即转换字符” <”, “<”, “&”, “ ” ”为实体代码,转换情况参考表 11.3 ,设置为 false 则不转换。

1.2 x:out标签

Page 8: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2 11.3.4 <x:set>标签

<x:set> 标签用于把 XML 文件中的部分内容存放到一个变量中,其语法如下: <x:set select=”XPathExpression” var=”varName” [scope=”page|request|

session|application”]/> 其中参数 XPathExpression 为 XPath 表达式,参数

varName 存放根据 XPathExpression 从 XML 文件中取出的内容, scope 设定 varName 的有效范围。 用 <x:set> 标签取出内容后,可用 <c:out> 标签输出,而不必再使用 <x:out 标签输出 > 。

Page 9: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2

<x:if> 标签的功能与 <c:if> 类似,用于对 XPath 表达式做出判断,其语法如下:<x:if select=”XPathExpression”var=”varName” [scope=”page|request|session|

application”]/>或:<x:if select=”XPathExpression”var=”varName” [scope=”page|request|session|application”]> XPathExpression 表达式为真时执行的标签语句, Java 程序, HTML 代码等。</x:if> 其中, XPathExpression 为要判断的 XPath 表达式,参数

varName 存放 XPath 表达式的结果, scope 设定 varName 的有效范围。 例如:当存在 item 的 id 属性为 1 的节点时输出 right!    <x:if select="$sampleXML/goods/item[@id=1]/name">        right!    </x:if>

1.2 x:if标签

Page 10: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2 1.3 <x:choose>、<x:when>和<x:otherwise>标签

这三个标签的功能类似于<c:choose> 、 <c:when> 和 <c:otherwise> ,所不同的是, <x:choose> 、 <x:when> 和<x:otherwise> 做出判断时使用的是 XPath 表达式。其语法如下:

<x:choose> <x:when> 和 <x:otherwise> 语句</x:choose><x:when> 标签的语法如下:<x:when select=”XPathExpression”> 标签语句, Java 语句或 HTML 代码等</x:when>

Page 11: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2

例如:当存在 item 的 id 属性为 1 的节点时输出right!, 否则输出 wrong

<x:choose>   <x:when

select="$sampleXML/goods/item[@id=1]/name">

        right!    </x:when>    <x:otherwise>       wrong!    </x:otherwise></x:choose>

1.3 <x:choose>、<x:when>和<x:otherwise>标签

Page 12: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2 1.4 x:foreach标签 <x:forEach> 标签功能与 <c:forEach> 相似,但

<x:forEach> 标签是专门针对 XML 文件的内容。其语法如下:<x:forEach select=”XPathExpression”

[var=”varName”] [varStatrs=”varStatusName”] [begain=”begin”]

[end=”end”] [step=”step”]> 标签语句, Java 语句或 HTML 代码等</x:forEach> 其参数的含义可参考前面的 <c:forEach> 标签。

Page 13: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2 1.5 x:transform标签 <x:transform> 标签用来通过 XSL 样式表( xslstylesheet )对一篇 XML 文件执行转换, <x:transform> 标签支持多种格式的语法,如下所示。 第一种语法:不含有 body 内容时<x:transform doc=”xmldocument”" xslt="xslt"[docSystemId=” docsystemid”] [xsltSystemId=”

xsltsystemid”][var="varName" scope="page|request|session|

application"]|result=”result”/>

Page 14: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2

第二种语法:含有 body 内容以指定参数时<x:transform doc=”xmldocument”" xslt="xslt"[docSystemId=” docsystemid”] [xsltSystemId=” xsltsystemid”][var="varName" scope="page|request|session|application"]|

result=”result”> <x:param name="name1" value="value1"/> ………… <x:param name="nameN“ value="valueN"/></x:transform>

第三种语法:含有 body 内容以指定需解析的 XML 文件及可选参数时<x:transform xslt="xslt"[docSystemId=” docsystemid”] [xsltSystemId=” xsltsystemid”][var="varName" scope="page|request|session|application"]|

result=”result”> ………… </x:transform>

1.5 x:transform标签

Page 15: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2

<x:transform> 标签的属性描述如下所示1.5 x:transform标签

Page 16: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2

其中, doc 的属性类型主要有以下几种:包含 XML 文件的字符串、接收 XML 文件的 Reader 、采用org.w3c.dom.Document 或javax.xml.transform.Source 类的实例以及<x:parse> 、 <x:set> 标签返回的变量值。

例如:<c:import var="xmlDoc" url="${xmlUrl}" /><c:import var="xsltStyleSheet" url="$

{xsltUrl}" /><x:transform doc="${xmlDoc}" xslt="$

{xsltStyleSheet}">

1.5 x:transform标签

Page 17: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2 2. JSTL的格式化/国际化标签库 JSTL 的国际化格式( I18N )标签库是 JSTL 的一项重要标签,可以实现国际化支持功能,可以根据不同的语言请求作出不同的相应。 JSTL 的国际化格式标签库包括国际化,消息和数字日期格式化:( 1 )国际化: <fmt:setLocale>, <fmt:requestEncoding> 。( 2 )消息: <fmt:bundle>, <fmt:setBundle>,

<fmt:message>,<fmt:param> 。( 3 )数字日期格式化: <fmt:formatNumber>, <fmt:formatDate>, <fmt:parseDate>, <fmt:parseNumber>, <fmt:timeZone>, <fmt:setTimeZone> 。

要使用 I18N 国际化格式标签需要在 JSP 文件的首部添加如下语句:<%@ taglib prefix=”fmt”

uri=”http://java.sun.com/jsp/jstl/fmt”%>

Page 18: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2 3. SQL标签库 JSTL 提供了一些与数据库操作相关的标签,它们是:

<sql:setDateSource>, <sql:query>, <sql:update>, <sql:dateParam>, <sql:param> 和 <sql:transaction>。用 JSTL 的 SQL 标签库可以直接存取数据库,但是由于 SQL标签把业务层逻辑、数据层和操作层逻辑都封装其中,是信息系统的层次逻辑性不清晰,而且没有连接池功能,所以只适合小型的网站,在大型项目中不建议使用这些标签,因此,此处不再详细介绍。

要使用 SQL 标签库的标签需要在 JSP 文件的首部添加如下语句: <%@ taglib prefix=”sql”

uri=”http://java.sun.com/jsp/jstl/sql”%>

Page 19: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2

SQL 标签库标签及其说明如下:3. SQL标签库

Page 20: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2 4. 函数标签库 在 JSTL1.1 中,除了以上介绍的常用标签外,还增加了许多用于字符串处理的标准 EL函数,这些函数称为函数标签。 要使用函数标签库的标签需要在 JSP 文件的首部添加如下语句: <%@ taglib prefix=”fn”

uri=”http://java.sun.com/jsp/jstl/functions”%>

Page 21: 13.3 XML 标签库及其它

JSP 视频教学课程

JSP2.2

函数标签库标签及其说明如下:

4. 函数标签库

Page 22: 13.3 XML 标签库及其它

谢谢收看!谢谢收看!

JSP JSP 视频教学课程视频教学课程