JSP页面引入:<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%>
1.用于解析XML文件的<x:parse>
解析XML文件
doc:指定要解析的XML文件。一般使用<c:import>检索到相应的XML文件。
var:把解析之后的XML文件存储在var属性指定的变量中。
scope:设置var属性指定的变量有效范围。
varDom:存储解析后的XML文件。
scopeDom:设置varDom属性指定变量的有效范围。
systemId:指定XML文件的URI。
filter:对应的是org.xml.sax.XMLFilter类。
var、scope和varDom、scopeDom不应该同时出现,而应该被视为两个版本来使用,二者的变量都可以被XML processing标签库的其他标签来使用。
2.用于显示XML内容的<x:out>
依靠XPath技术,需要xalan-j的jar包
select XPath表达式
escapeXml 当特殊字符如:“<,>,&,’,””出现在取得的结果字符串中时,将以转义字符来替换
3.用于保存XML内容的<x:set>
依靠XPath技术,需要xalan-j的jar包
select XPath表达式
var 保存结果的变量名
scope 变量的作用范围(可选)
4.用于判断的<x:if>
XPath的boolean()函数得到的判断结果,来判断是否显示其标签所包含的内容。
select XPath表达式
var 保存boolean类型结果的变量名(结果为boolean类型)
scope 变量的作用范围(可选)
5.用于复杂判断的<x:choose>、<x:when>、<x:otherwise>
这组标签将一起使用,来提供“if elseif”语句的功能。
<x:choose>标签没有属性,可以被认为是父标签,<x:when>、<x:otherwise>将作为其子标签来使用。
<x:when>标签等价于“if”语句,它包含一个test属性,该属性为XPath判断表达式。
<x:otherwise>标签没有属性,它等价于“else”语句。
6.用于对XML元素循环的 <x:forEach>
<x:forEach>为对XML文件中同一名称元素的循环控制标签。
select XPath表达式,结果是一个集合,将对该集合进行循环(可选)
begin 开始条件(可选)
end 结束条件(可选)
step 循环的步长,默认为1(可选)
var 做循环的对象变量名,表示XPath表达式结果集合中的一个对象(可选)
varStatus 显示循环状态的变量(可选)
7.格式化XML显示数据的<x:transform>、<x:param>
<x:transform>:用于把XML文件转换成XSLT格式。 、
<x:param>:和<x:transform>配套使用,用于传递参数
doc 源XML的内容,该属性的内容应该为String、java.io.Reader、javax.xml.transform.Source、
org.w3c.dom.Document的实例,或者从<x:parse>、<x:set>两个标签得到。
可以用xml属性来替代,但是不被推荐(可选)
xslt 源XSLT的内容,该属性的内容应该为String、java.io.Reader、javax.xml.transform.Source的实例(可选)
docSystemId 定义一个URI,该URI将被使用到XML文件中以接入其他资源文件。可以用xml SystemId属性来替代,但是不被推荐(可选)
xsltSystemId 定义一个URI,该URI将被使用到XSLT文件中以接入其他资源文件(可选)
var 将格式化后的XML文件保存在该属性所指定的变量中,保存的变量为org.w3c.dom.Document接口类型(可选)
scope 变量的作用范围(可选)
result 保存转化结果的变量,保存的变量为javax.xml.transform.Result类型的实例(可选)
8.示例
XPATH教程:http://www.w3school.com.cn/xpath/index.asp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%> <%@ page import="java.util.List,java.util.ArrayList"%> <html> <head> <title>JSTL XML标签</title> </head> <body> <c:import var="xmlFile" url="http://localhost:8099/WebTest/test.xml" charEncoding="UTF-8"></c:import> <x:parse var="testXml" doc="${xmlFile }"></x:parse> <%-- <x:parse var="testXml"> <?xml version="1.0" encoding="UTF-8"?> <test> <name> 名称 </name> <values> <value>值A</value> <value>值B</value> <value><font color="green">值C</font></value> </values> <values> <val>值A1</val> <val>值B1</val> <val><font color="blue">值C1</font></val> </values> <values> <val>值A2</val> <value>值B2</value> <value></value> </values> <properties> <value>属性1</value> <value>属性2</value> <value>属性3</value> </properties> </test> </x:parse> --%> <x:set var="name" select="$testXml/test/name"/> 输出所有节点:<x:out select="$testXml"/> <br/> 输出要目录所有节点:<x:out select="$testXml/test"/> <br/> 输出节点name:<x:out select="$testXml/test/name"/> <br/> 输出Set后的结点name:<x:out select="$name"/> <br/> 输出节点values下的所有节点:<x:out select="$testXml/test/values"/> <br/> 输出节点values下的第一个value节点:<x:out select="$testXml/test/values/value"/> <br/> 输出第一个value节点:<x:out select="$testXml//value"/> <br/> 输出第一个value节点:<x:out select="$testXml/test/*/value"/> <br/> 输出第一个包含val节点的values节点的所有节点:<x:out select="$testXml/test/values[val]"/> <br/> 输出第一个包含val(val节点值为'值A2')节点的values节点的所有节点:<x:out select="$testXml/test/values[val='值A2']"/> <br/> <hr/> <br/> 循环,IF选择,循环值保存在变量中:<br/> <x:forEach select="$testXml/test/values/value" var="val"> <x:if select="."> <x:out select="$val" escapeXml="false"/> </x:if> <x:if select="./font"> <font color='<x:out select="./font/@color"/>'><x:out select="$val" escapeXml="false"/></font> </x:if> </x:forEach> <br/> 循环,Choose选择,循环值不保存在变量中,循环状态:<br/> <x:forEach select="$testXml/test/values/val" varStatus="s"> <c:out value="${s.index}" />, <c:out value="${s.count}" />, <c:out value="${s.first}" />, <c:out value="${s.last}" />, <x:choose> <x:when select="./font"> <font color='<x:out select="./font/@color"/>'><x:out select="."/></font> </x:when> <x:otherwise> <x:out select="."/> </x:otherwise> </x:choose> <br/> </x:forEach> <br/> <hr/> <br/> </body> </html>
输出:
输出所有节点: 名称 值A 值B 值C 值A1 值B1 值C1 值A2 值B2 属性1 属性2 属性3
输出要目录所有节点: 名称 值A 值B 值C 值A1 值B1 值C1 值A2 值B2 属性1 属性2 属性3
输出节点name: 名称
输出Set后的结点name: 名称
输出节点values下的所有节点: 值A 值B 值C
输出节点values下的第一个value节点:值A
输出第一个value节点:值A
输出第一个value节点:值A
输出第一个包含val节点的values节点的所有节点: 值A1 值B1 值C1
输出第一个包含val(val节点值为'值A2')节点的values节点的所有节点: 值A2 值B2
循环,IF选择,循环值保存在变量中:
值A 值B 值C 值C 值B2
循环,Choose选择,循环值不保存在变量中,循环状态:
0, 1, true, false, 值A1
1, 2, false, false, 值B1
2, 3, false, false, 值C1
3, 4, false, true, 值A2
相关推荐
在 JSTL1.1 中有以下这些标签库是被支持的: Core 标签库、 XML processing 标签库、 I18N formatting 标签库、 Database access 标签库、 Functions 标签库。
JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也...
如果要使用JSTL,则必须将jstl.jar和 standard.jar文件放到classpath中,如果你还需要使用XML processing及Database access (SQL)标签,还要将相关JAR文件放到classpath中,这些JAR文件全部存在于下载回来的zip文件...
JSTL操作XML,通过具体的例子说明了如何通过JSTL操作XML的操作。
使用jstl需要包含的3个jar 博文链接:https://pignut-wang.iteye.com/blog/54782
JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。core 标记库提供了定制操作,通过限制了作用域的变量管理数据...
JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。在 developerworks 上其新系列...
JSTL XML标签库——XercesImpl.jar、xalan.jar
jstl-标准标签库祥解。 EL-表达式 Core-标签库 XML-标签库 ... ...
JSTL是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。但是在即将推出的JSP 2.0中是作为标准支持的。 JSTL目前的最新...
JSTL标签大全,涵盖JSTL教程 JSTL标签库使用方法: 标签库 URI 前缀 使用模式 ...XML标签库 http://java.sun.com/jstl/xml x …> 函数标签库 http://java.sun.com/jstl/functions fn <fn:tagname…>
JSP 标准标签库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问. 如果要使用JSTL,则必须将...
在web项目中使用JSTL标签,JSTL 1.0 的声明是 <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core " %> 所使用的web应用服务器resin与tomcat有所区别 resin\lib目录下存在jstl-1.2.jar、jta-101.jar包 而...
JSP标准标签库(JSP Standard Tag Library)是Java EE网络应用程序开发平台的组成部分。它在JSP规范的基础上,扩充了一个JSP的标签库来完成一些通用任务,比如XML数据处理、条件执行、数据库访问、循环和国际化
jstl标签库jstl-1.2和javax.servlet.jsp.jstl !!!!!!!!
JSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的。在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也... XML标签库 函数标签库
JSTL标准标签库的各个标签详细说明,包含了核心标签库(c:),国际化标签库(fmt:)以及函数标签库(fn).注意:SQL标签库(sql:)以及XML标签库(xml:)不应使用,文档中也未提及
语法完全同jsp语法,支持java脚本和jstl标签,对于使用jstl的人来说没有任何学习成本。 零配置,不需要任何配置文件,也可以指定配置文件,配置文件简单明了。 可插拔的模块设计,模板加载方式,el引擎,运行模式均...