JSTL_XML标记库

Posted 爱华顿g

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSTL_XML标记库相关的知识,希望对你有一定的参考价值。

JSTL_XML

一:说明

  1. 如有转载请标明出处
  2. 必须包含的属性->有默认值的属性->其余属性,中间用回车隔开

 

二:XML标记库

  Xml标记库主要功能就是为在jsp页面中操作xml提供便利支持,本博文不做详解,<x:out>,<x:set>,<x:if>,<x:when>,<x:choose>,<x:forEach>,<x:otherwise>,<x:param>标记与core标记库中的同名标记的作用基本一样,唯一的区别就是这些标记是处理xml内容的

 

三:XML标记

1. <x:out>,<x:set>,<x:if>,<x:when>,<x:choose>,<x:forEach>,<x:otherwise>,<x:param>标记与core标记库中的同名标记的作用基本一样,唯一的区别就是这些标记是处理xml内容的

2. <x:parse>标记     

示例代码:

Xml文件内容:
技术分享图片
<?xml version="1.0" encoding="UTF-8"?>

 

<peoples>

         <people>

                   <name>达伦·布朗</name>

                   <sex>man</sex>

         </people>

        

         <people>

                   <name>爱华顿g</name>

                   <sex>little man</sex>

         </people>

        

         <people>

                   <name>夏洛特·玲玲</name>

                   <sex>women</sex>

         </people>

        

         <people>

                   <name>休斯顿·魔术师</name>

                   <sex>bigman</sex>

         </people>

</peoples>
peoples.xml


Jsp文件内容:
技术分享图片
  <%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

         <c:import var="file" url="peoples.xml" charEncoding="utf-8"/>

        

         <x:parse xml="${file}" var="cc"/>

        

                   <table border="1">

                   <tr>

                            <td>姓名</td>

                            <td>性别</td>

                   </tr>

                   <x:forEach var="n" select="$cc/peoples/people">

                   <tr>

                            <td>

                                     <x:out select="$n/name"/>

                            </td>

                            <td>

                                     <x:out select="$n/sex"/>

                            </td>

                   </tr>

                   </x:forEach>

         </table>

        

</body>

</html>
xparse.jsp

所有属性:

         Doc:所要解析的XML文件的名称,或者是java.io.Reader类型的对象

        

         scope:设定var变量的作用范围,默认值:page

         scopeDom:设定varDom变量的作用范围,默认值:page

 

         var:设定保存解析以后的xml文档内容的变量的名称

         varDom:设定代表所解析的xml文件的org.w3c.dom.Document类型的对象的变量名称

         filter:设定org.xml.sax.XMLFilter类型的一个对象,这个对象可以在解析之前对文件进行过滤操作

         systemId:设定当前要解析的xml文件的URI值

 

3.<x:transform>

可以实现xsl样式表的转换

示例代码:
技术分享图片
<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

       <xsl:template match="/">

              <!-- TODO: Auto-generated template -->

              <html>

              <body>

              <table border="1">

              <tr>

                     <td>姓名</td>

                     <td>性别</td>

              </tr>

              <xsl:for-each select="peoples/people" >

              <tr>

                     <td><xsl:value-of select="name"/></td>

                     <td><xsl:value-of select="sex"/></td>

              </tr>

              </xsl:for-each>

       </table>

</body>

</html>

       </xsl:template>

</xsl:stylesheet>
people.xsl
技术分享图片
<?xml version="1.0" encoding="UTF-8"?>

 

<peoples>

       <people>

              <name>达伦·布朗</name>

              <sex>man</sex>

       </people>

      

       <people>

              <name>爱华顿g</name>

              <sex>little man</sex>

       </people>

      

       <people>

              <name>夏洛特·玲玲</name>

              <sex>women</sex>

       </people>

      

       <people>

              <name>休斯顿·魔术师</name>

              <sex>bigman</sex>

       </people>

</peoples>
peoples.xml

Transform.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>

 

<c:import url="peoples.xml" var="url" charEncoding="utf-8"/>

<c:import url="people.xsl" var="xsl" charEncoding="utf-8"/>

 

<x:transform doc="${url}"  xslt="${xsl}"/>  


属性介绍:

doc:所要转换的xml文件的名称,或者是java.io.Reader对象

xslt:所要转换的xslt文件的名称,也可以是Reader或者javax.xml.transform.Source类型的对象

 

scope:设置var变量的保存范围,默认值:page

 

docSystemId:设置当前要转换的xml文件的uri值

xsltSystemId:设置要转换成的xslt文件的URI值

var:设定保存后内容的变量的名称

result:设定保存后内容的变量的对象,对象类型:javax.xml.transform.Result

 

                                                              

         

以上是关于JSTL_XML标记库的主要内容,如果未能解决你的问题,请参考以下文章

十条jQuery代码片段助力Web开发效率提升

使用标准库Ruby将数据标记到Elasticsearch批量中

CSS 显示代码片段:使用PRE标记包裹长行

几个非常实用的JQuery代码片段

带有标记的Android谷歌地图片段

如何更改谷歌地图标记上方的标题和片段设计