zoukankan      html  css  js  c++  java
  • JSTL XML标签库 使用

    推荐博客:http://blog.sina.com.cn/s/blog_4f925fc30101820u.html

    XML标签库

    JSTL提供了操作xml文件的标签库,使用xml标签库可以省去使用DomSAX标签库的繁琐,能轻松的读取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

    指定varJSP范围

    String

    page

    varDom

    以(org.w3c.dom.Doucemet)的形式存储解析的xml文件

    String

    scopeDom

    指定varDomJSP范围

    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”>

    【参数说明】:

    1select通过指定的XPath表达式语句获取节点的值。

    2var指定用于存储值的变量名。

    3)指定varJSP属性范围。

    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>标签根据条件表达式的结果决定是否执行本体内的代码。

    【参数说明】:

    1select用来指定使用的XpathExperssion表达式。

    2var设定标量名用来存储表达式的结果。

    3scope指定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>标签

    使用该标签可以轻松的实现xmlXSLT的转化。

    【语法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>

    【参数说明】:

    1name指定参数的名称。

    2value指定参数值。

  • 相关阅读:
    OOm是否可以try catch ?
    Java中两个线程是否可以同时访问同一个对象的两个不同的synchronized方法?
    PHP请求ws出现的问题
    AndFix注意事项
    thinkphp 查表返回的数组,js解析有UNICode编码,解决办法
    thinkphp用ajax遇到的坑——ajax请求没有反应
    用php获取js变量的值
    android项目安装报错:INSTALL_FAILED_CONFLICTING_PROVIDER
    96
    wuti
  • 原文地址:https://www.cnblogs.com/lihuiyy/p/2376123.html
Copyright © 2011-2022 走看看