1 / 22

13.3 XML 标签库及其它

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

Download Presentation

13.3 XML 标签库及其它

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 13.3 XML标签库及其它 JSP 视频教学课程

  2. 目录 1. XML标签库 2. 格式化/国际化标签库 3. 数据库标签库 4. 函数标签库

  3. 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”%>

  4. 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>

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

  6. 1.1 x:parse标签 • 其中,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>

  7. 1.2 x:out标签 • <x:out>标签用于根据XPath表达式输出XML文件中的内容,语法如下: <x:out select=”XPathExpression” [escapeXML=”true|false”]/> • 其中,参数XPathExpression为XPath表达式,escapeXML默认值为true,即转换字符”<”, “<”, “&”, “””为实体代码,转换情况参考表11.3,设置为false则不转换。

  8. 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标签输出>。

  9. 1.2 x:if标签 • <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>

  10. 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>

  11. 1.3 <x:choose>、<x:when>和<x:otherwise>标签 • 例如:当存在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>

  12. 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>标签。

  13. 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”/>

  14. 1.5 x:transform标签 • 第二种语法:含有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>

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

  16. 1.5 x:transform标签 • 其中,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}">

  17. 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”%>

  18. 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”%>

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

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

  21. 4. 函数标签库 • 函数标签库标签及其说明如下:

  22. 谢谢收看! JSP 视频教学课程

More Related