JSTL XML标签库 使用
推荐博客:http://blog.sina.com.cn/s/blog_4f925fc30101820u.html
XML标签库
JSTL提供了操作xml文件的标签库,使用xml标签库可以省去使用Dom和SAX标签库的繁琐,能轻松的读取xml文件的内容。
1 XML核心标签库
1.<x:parse>标签
<x:parse/>标签用来解析指定的xml文件。
【语法1】:
<x:parse doc=”xmlDocument”
{var=”name”[scope=”page|request|session|application”]|varDom=”name”[scope=”page|request|session|application”]}
systemId=”systemId”
filter=”filter”
/>
【语法2】:
<x:parse
{var=”name”[scope=”page|request|session|application”]|varDom=”name”[scope=”page|request|session|application”]}
systemId=”systemId”
filter=”filter”
>
xmlDocument
</x:parse>
【参数说明】:见表9-20。
表9-20 <x:parse>标签属性说明
属性名 |
说明 |
EL |
类型 |
必须 |
默认值 |
doc |
指定解析的xml文件 |
是 |
String/Reader |
是 |
无 |
var |
存储解析后的xml文件 |
否 |
String |
否 |
无 |
scope |
指定var的JSP范围 |
否 |
String |
否 |
page |
varDom |
以(org.w3c.dom.Doucemet)的形式存储解析的xml文件 |
否 |
String |
否 |
无 |
scopeDom |
指定varDom的JSP范围 |
否 |
String |
否 |
page |
systemId |
xml文件的url |
是 |
String |
否 |
无 |
filter |
解析xml文件的过滤器 |
否 |
Org.xml.sax.Filter |
否 |
无 |
提示:doc指定解析的xml文件并不是指定xml文件的路径,而是同<c:import>共同使用,由<c:import>加载并存储,然后使用<x:parse>解析。
例如:如果解析person.xml文件需要通过如下代码实现对xml文件的解析。
<c:import var="docString" url="person.xml"/><!--引入person.xml文件-->
<x:parse var="doc" doc="${docString}"/>
<c:import>语句用来导入或存储文件到JSP。如果不使用var来存储,xml文件将显式的出现在JSP文件中。
<x:parse>标签只用来解析xml文件,并不显示xml文件中的内容,如果想得到xml的节点元素或值需要使用<x:out>元素来实现。
2.<x:out>标签
<x:out>标签主要用来输出xml的信息。
【语法】:
<x:out select=”XpathExperssion”[excapeXml=”true|false”]>
【参数说明】:见表9-21。
表9-21 <x:out>标签属性说明
属性名 |
说明 |
EL |
类型 |
必须 |
默认值 |
select |
指定使用的XPath语句 |
否 |
String |
是 |
无 |
escapeXml |
是否转换特殊字符。如<等 |
否 |
boolean |
是 |
true |
提示:使用XPath语句需要用到xalan.jar支持包,可以从示例程序的lib中获取,获得直接从myEclipse中可以找到。
【示例代码】:
3.<x:set>标签
<x:set>标签用于将从xml文件节点解析的内容存储到JSP属性范围中。
【语法】:
<x:set select=”XPathExperssion” var=”name” scope=”page|request|session|application”>
【参数说明】:
(1)select通过指定的XPath表达式语句获取节点的值。
(2)var指定用于存储值的变量名。
(3)指定var的JSP属性范围。
2 XML流程控制
使用xml标签库的流程控制标签可以迭代处理xml文件的内容,流程控制可以分为以下两个方面的内容:
(1)条件判断。
(2)循环功能。
1.<x:if>
<x:if>主要用于条件判断。
【语法1】:未含有本体内容。
<x:if select=”XPathExperssion” var=”name”[scope=”page|request|session|application”]/>
【语法2】:含有本体内容。
<x:if select=”XPathExperssion” var=”name”[scope=”page|request|session|application”]
>
本体内容
</x:if>
语法1只把根据条件表达式得到的结果的存储在JSP范围中,语法2根据<x:if>标签根据条件表达式的结果决定是否执行本体内的代码。
【参数说明】:
(1)select用来指定使用的XpathExperssion表达式。
(2)var设定标量名用来存储表达式的结果。
(3)scope指定var存储的JSP属性范围。
2.<x:choose>、<x:when>和<x:otherwise>标签
同核心标签库的<c:choose>、<c:when>和<c:otherwise>标签作用相似,只是使用的条件表达式不同。
<x;choose>是主标签,<x:when>和<x:otherwise>放在<x:choose>标签体内共同使用。
【语法】:
<x:choose>
<x:when>
<x:when>
<x:otherwise>
</x:choose>
其中只有<x:when>有属性。
【语法】:
<x:when select=”XPathExperssion”>
3.<x:forEach>标签
<x;forEach>标签实现了对xml文档的遍历。
【语法】:
<x:forEach select=”XPathExperssion”[var=”name”][varStartus=”StartusName”]
[begin=”begin”][end=”end”][step=”step”]
>
//标签主体
</x:forEach>
【参数说明】:见表9-22。
表9-22 <x:forEach>标签属性说明
属性名 |
说明 |
EL |
类型 |
必须 |
默认值 |
select |
指定使用的XPath语句 |
否 |
String |
是 |
无 |
var |
用于存储表达式的结果 |
否 |
String |
否 |
无 |
varStatus |
用来存放循环到的变量的相关信息 |
否 |
String |
否 |
无 |
begin |
循环的起始位置 |
是 |
int |
否 |
无 |
end |
循环的终止位置 |
是 |
int |
否 |
无 |
3 xml的文件转换
<x:transform>和<x:param>能轻易使用XSLT样式包装xml文件,成为另一种显示方式。
1.<x:transform>标签
使用该标签可以轻松的实现xml到XSLT的转化。
【语法1】:
<x:transform doc=”xmldoc” xslt=”XSLTStytlesheet”[docSystemId=”xmlsystemid”]
[result=”result”]
[var=”name”]
[scope=”scopeName”]
[xsltSystemId=”xsltsystemid”]/>
【语法2】:
<x:transform doc=”xmldoc” xslt=”XSLTStytlesheet”[docSystemId=”xmlsystemid”]
[result=”result”]
[var=”name”]
[scope=”scopeName”]
[xsltSystemId=”xsltsystemid”]
>
<x:param/>
</x:transform>
【语法3】:
<x:transform doc=”xmldoc” xslt=”XSLTStytlesheet”[docSystemId=”xmlsystemid”]
[result=”result”]
[var=”name”]
[scope=”scopeName”]
[xsltSystemId=”xsltsystemid”]
>
Xml文件内容
<x:param/>
</x:transform>
【参数说明】:见表9-23。
表9-23 <x:transform>标签属性说明
属性名 |
说明 |
EL |
类型 |
必须 |
默认值 |
doc |
指定xml文件来源 |
是 |
String |
是 |
无 |
xslt |
转化xml的样式模板 |
是 |
String |
是 |
无 |
docSystemId |
xml文件的URI |
是 |
String |
否 |
无 |
xsltSystemId |
xslt文件的URI |
是 |
String |
否 |
无 |
result |
用来存储转换后的结果对象 |
是 |
java.xml.transform |
是 |
无 |
var |
以org.w3c.dom.Documet类型存储转换后的结果 |
否 |
String |
否 |
无 |
scope |
var的属性范围 |
否 |
String |
否 |
无 |
2.<x:param>标签
该标签用来为<x:transform>标签转换参数。
【语法1】:
<x:param name=”name” value=”value”/>
【语法2】:
<x:param name=”name” value=”value”
>
Value
</x:param>
【参数说明】:
(1)name指定参数的名称。
(2)value指定参数值。
JSTL XML标签库 使用的更多相关文章
- JSP标准标签库(JSTL)--XML标签库 x
³在开发中XML解析的操作是非常烦琐的,幸运的是在JSTL中专门提供了用于XML解析的操作,这样用户就可以不用费力的去研究SAX或DOM等操作的使用,就可以轻松的进行XML文件的解析处理. XML标 ...
- 小峰servlet/jsp(7)jstl国际化标签库、sql标签库等
一.jstl国际化标签库: fmt:setLocale 设定用户所在的区域: fmt:formatDate 对日期进行格式化 fmt:requestEncoding 设置所有的请求编码; fmt: ...
- (5)JSTL的xml标签库
Jstl的XML标签库 JSTL提供了操作xml文件的标签库,使用xml标签库可以省去使用Dom和SAX标签库的繁琐,能轻松的读取xml文件的内容. <%@ taglib uri="h ...
- JSTL函数标签库 fn标签
JSTL函数标签库 fn标签 在使用jstl的函数标签库之前需要在页面中引入: <%@ taglib prefix="fn" uri="http://java.su ...
- Java Servlet(十):JSTL核心标签库
JSTL全名称:JaveServer Pages Standard Tag Library.JSTL是由JCP(Java Community Process)所定制的标准规范,它主要提供给Java W ...
- JSTL标准标签库
有时使用EL和标准动作达不到目的,于是就引入定制标记. 对于JSP页面创作人员来说,定制标记使用起来比脚本要容易一些.不过对于JAVA程序员来说,简历定制标记处理器反而更困难.幸运的是,已经有了一个标 ...
- EL表达式和JSTL核心标签库
1 EL表达式 1.1 EL的概述 EL,全名为Expression Language. 主要作用: ①EL表达式主要用于替换jsp页面中的脚本表达式,以便于从各种类型的web域中检索java对象(某 ...
- ⑤早起的鸟儿有虫吃-JSTL核心标签库[收藏]
介绍 JSTL 全名为Java Server Pages Standard Tag Library(JSP Standard Tag Library),它的中文名称为JSP 标准标签函数库. Web ...
- Javaweb学习笔记——(十三)——————JSTL、JSTL核心标签库、自定义标签、有标签体的标签、带有属性的标签、MVC、Javaweb三层框架
JSTLApache提供的标签库 jar包:jstl-1.2.jar,如果传MyEclipse,他会在我们导入jar包,无需自己导入,如果没有使用MyEclipse那么需要自行导入.--------- ...
随机推荐
- Orcale11g单机安装与卸载
前言:本篇主要介绍Oracle11g企业版安装的准备工作,建议使用图形化界面安装,静默安装出现问题较多,初学者不好排查,本篇只给出关键步骤,最后介绍完全删除Orcale方法: Oracle Datab ...
- hdu1217(spfa,存在环,但需要将环的元素历遍一次.....求乘积的最大)
题意:有n个国家货币,给出m种两个国家之间的货币兑换率,求是否可以盈利....... 思路:其实就是看国家货币兑换间是否存在一个环,使得从v点出发时,dis[v]=1,经过环回到v点时,dis[v]& ...
- Android线程通信
摘要 andriod提供了 Handler 和 Looper 来满足线程间的通信.例如一个子线程从网络上下载了一副图片,当它下载完成后会发送消息给主线程,这个消息是通过绑定在主线程的Handler来传 ...
- Server.MapPath 出现未将对象引用设置到对象的实例
此文仅在于使遇到相似问题的朋友能少走弯路 asp.net中我用一个页面的cs文件调用一个自定义类,这个自定义类再调用 System.Web.HttpContext.Current.Server.Map ...
- java基础篇---I/O技术(一)
对于任何程序设计语言而言,输入输出(I/O)系统都是比较复杂的而且还是比较核心的.在java.io.包中提供了相关的API. java中流的概念划分 流的方向: 输入流:数据源到程序(inputStr ...
- gSoap的“error LNK2001: 无法解析的外部符号 _namespaces”解决方法
错误 2 error LNK2001: 无法解析的外部符号 _namespaces 解决方法: 1. 在工程中定义 WITH_NONAMESPACES 宏 2.尝试 "#include &q ...
- Spring WebSocket初探2 (Spring WebSocket入门教程)<转>
See more: Spring WebSocket reference整个例子属于WiseMenuFrameWork的一部分,可以将整个项目Clone下来,如果朋友们有需求,我可以整理一个独立的de ...
- Andorid Dialog 显示宽度设置
dialog.getWindow().setLayout(200, LayoutParams.WRAP_CONTENT);
- ambari删除脚本
#.删除hdp.repo和hdp-util.repo cd /etc/yum.repos.d/ rm -rf hdp* rm -rf HDP* #rm -rf ambari* #.删除安装包 #用yu ...
- jquery 异步处理
<!DOCTYPE html> <head> <script type="text/javascript" src="jquery-1.12 ...