开发参考jstl网络标签与ssh类参考手册_第1页
开发参考jstl网络标签与ssh类参考手册_第2页
开发参考jstl网络标签与ssh类参考手册_第3页
开发参考jstl网络标签与ssh类参考手册_第4页
开发参考jstl网络标签与ssh类参考手册_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 7JSTL 的 库XML XPath XML ;如何XML XML 结点信息;XML 最后通过几个在开发中常用的示例加深对 第 7JSTL 的 库XML XPath XML ;如何XML XML 结点信息;XML 最后通过几个在开发中常用的示例加深对 XML XML 库XML 介绍W3C 1998 2 XML 1.0 标准。XML HTML SGML(Standard Generalized Markup Language,标准通用化标记语言)衍生出来的。XML 既具有 SGML 功能和可扩展性,又具有 HTML 的简单性。XML XML,了解 XML 对 XML MLXML XML 文档

2、结XML 和 HTML 是一个简单的 XML ?xml=1.0班级学生0509302男XML 中允许用户创建标记。这些标记能够清晰地表达信息的意思。这一点和 HTML 有很大的不同,在 HTML 中只能使用固定的标记。而且在 XML XML XML XML XML XML XML 文档是典型的树状结构。如上面的 XML 中允许用户创建标记。这些标记能够清晰地表达信息的意思。这一点和 HTML 有很大的不同,在 HTML 中只能使用固定的标记。而且在 XML XML XML XML XML XML XML 文档是典型的树状结构。如上面的 XML 文件,顶层的元素(也称为根结点)为。在的下面又定义

3、了一个名为的子元素(也称为子结点。在定义了 5 个子元素,分别为、。在选修课程3 个子元素,分别为、XML 7-1 图7-XML 树状XML 路径语引入 XPath 的概念,目的就是为了在匹配 XML 文档结构树时能够准确地找到某一个结点元素。可以把 XPath 比做文件管理路径,通过文件管理路径,可以按照一定的规则查找到所需要的文件;同样,依据 XPath 所制定的规则,也可以很方便地找到 XML 一个结点。下面新建一个简单的 XML 选修课程高等代数/选修课 数学分析/选修课 大学物理/选修课 /选修课程/学生/班级先来介绍一些 XPath XML XML 文件中有且只XML (3)下的结

4、点。如示例中“选修课程”是“学生”的子结点,而“选修课程”又是“选修课 1先来介绍一些 XPath XML XML 文件中有且只XML (3)下的结点。如示例中“选修课程”是“学生”的子结点,而“选修课程”又是“选修课 1XPath XML 7-1 7-1 XPathXMLXPath 表示根结点/班级学生结点/班级/学生学号结点/班级/学生/学号结点/班级/学生/结点/班级/学生/?xml=1.0班级0509302男选修课程高等代数/选修课 数学分析/选修课 大学物理/选修课 /选修课程/学生0509301女选修课程控制论基础/选修课 选修课/选修课大学物理/选修课 /选修课程/学生/班级(续

5、表XPath JSTL XML JSTL XML 用到 XPath,同时也会结合 EL 库JSTL JSTL JSP API XML (续表XPath JSTL XML JSTL XML 用到 XPath,同时也会结合 EL 库JSTL JSTL JSP API XML XML XML JAR 面讲解过如何安装 JSTL,但是要想通过 JSTL 对 XML xalan.jar serializer.jarJAR XML 7-2 图7-错误提java.lang.NoClassDefFoundError 异常出现的原因是当 Java 虚拟机或 ClassLoader 实例试图在类的定义中加载(作为

6、通常方法调用的一部分或者作为使用 new XPath 表示结点/班级/学生/选修课程结点/班级/学生/选修课程选修课 1 结点/班级/学生/选修课程/选修课 选修课 2 结点/班级/学生/选修课程/选修课 选修课 3 结点/班级/学生/选修课程/选修课 id 属性值/班级/学生所有选修课 1 结点/选修课 选修课程的所以子结点/班级/学生/选修课程分必需的 JAR dyn/closer.cgi/xml/xalan-j,该站点为 Apache 开源组织下的子站点。打开页面如图 7-3 图7-/xml/xalan-7-4 图7-分必需的 JAR dyn/closer.cgi/xml/xalan-j

7、,该站点为 Apache 开源组织下的子站点。打开页面如图 7-3 图7-/xml/xalan-7-4 图7-页单击 xalan-j_2_7_1-bin-,7-5 xalan.jar serializer.jar XML 安装该 JAR 文件非常简单,只要将这两个 JAR Web WEB-下的 lib 目录中就可以了。如果在多个 Web 站点中都要使用该 JAR lib 图7-文件目录3 XML XML XML 流程控制操作,用来对 XML XML XML XSLT JSP lib 图7-文件目录3 XML XML XML 流程控制操作,用来对 XML XML XML XSLT JSP 7-2

8、 7-2 指定的 XML 功 能 分 类操作XML 流程控制操作XML 转换操作注 意XML JAR JSTL 进行 XML 操作的话,则无须这两个 JAR 文件。用 doc 属性指定 XML XML 7-3 7-XML var varDom 量中。不会执行任何有效性的验证。XML 文档可以由 doc 下面通过示例分别介绍使用没有本体内容和有本体内容的XML 没有本体内容的通过doc 属性来指定XML 。XML 文件,team.xml 使用XML 用 doc 属性指定 XML XML 7-3 7-XML var varDom 量中。不会执行任何有效性的验证。XML 文档可以由 doc 下面通过

9、示例分别介绍使用没有本体内容和有本体内容的XML 没有本体内容的通过doc 属性来指定XML 。XML 文件,team.xml 使用XML %pagelanguage=javaimport=java.util.*%taglib prefix=c?xml=1.0球队三井/队员/球队属 是否必须默认值XML 文件否无XML 文件的 否无XML 过滤器否无后的 XML文件类型否无varDom 范否后的 XML 文件否无var 范否x:parse的XML文x:parsevarDom=varNmaescopeDom=page|request| ses代码中使用导入该 XML 文件,并保存在 team 变

10、量中。在doc XML 代码中使用导入该 XML 文件,并保存在 team 变量中。在doc XML 有本体内容的XML teamXml 通过直接在本体内容中给出 XML XML doc XML 有本体内容的同样可以搭配%pagelanguage=javaimport=java.util.*%taglibprefix=c%taglibprefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01%pagelanguage=javaimport=java.util.*%taglib prefix=c%taglib prefix=x!DOCTYPEHTMLPUBLIC-/W

11、3C/DTDHTML4.01XML文件%-在本体内容中给出XML 文件,后的XML 文件保存在teamXml 变量中-x:parse球队三井/队员/球队%taglib prefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01XML文件%-导入该XML 文件,并保存在team 变量中c:importvar=teamurl=team.xml%-使用doc指定XML文件,后的XML 文件保存在teamXml 变量中-x:parsedoc=$team通过 XPath 语句将结果输出到 JSP 中。与类似,但是x:out7-4 7-select 属性为执行的 XPath,其

12、中将会结合到中 var 一个示例介绍如何使用通过 XPath 语句将结果输出到 JSP 中。与类似,但是x:out7-4 7-select 属性为执行的 XPath,其中将会结合到中 var 一个示例介绍如何使用%pagelanguage=javaimport=java.util.*%taglibprefix=c%taglibprefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01%-XML文件,将结在studentXml 变量中-x:parse学生/学生%-通过XPath 取出XML 文件的信息x:out select=$studentXml/学生属 是否必须默

13、认值XPath 语句是无是否转换特殊字符否无XML文件%-在本体内容中通过import导入 XML文件后的XML文件保存在teamXml变量中-x:parsec:importurl=team.xml使用XML studentXml select 文件的变量名再加上 XPath 语句,这样就能够取得 XML 7-6 图使用XML studentXml select 文件的变量名再加上 XPath 语句,这样就能够取得 XML 7-6 图7-输出XML 的信XPath 语句为“/学生”XPath 运行程序,页面效果和图 7-6 Xml 属性用来设定是否将 XML 信息中的特殊字符进行转换, 和中的

14、Xml 属性一样。下面通过一个简单示例来演示 Xml %taglib prefix=c%taglib prefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01x:parse%taglibprefix=c%taglibprefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01%-XML文件,将结在studentXml变量中-x:parse学生/学生%-通过XPath取出XML文件的信息x:outXml 属性在默认情况为 true中从源代码可以看出,程序进行了特殊字符的转换,如果设定 Xml falseXPath |7-5 7-使用到 va

15、rName 变量中后,都会使用属 Xml 属性在默认情况为 true中从源代码可以看出,程序进行了特殊字符的转换,如果设定 Xml falseXPath |7-5 7-使用到 varName 变量中后,都会使用属 是否必须默认值XPath 语句是无将取得的内在 varName 变量中否无var 范否!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01学生/学生x:out示例来演示如何通过内容,并通过代码中使用studentName 变量中,然后通过示例来演示如何通过内容,并通过代码中使用studentNam

16、e 变量中,然后通过studentName 7-7 图7-输出XML 的信如果通过取得的不是字符串而是 XML 文件中部分内容(文件片段来输入 XML %taglibprefix=c%taglibprefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01x:parse%taglibprefix=c%taglibprefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01x:parse学生/学生%-将取得的内在studentName变量中-x:set select=$studentXml/学生%-输入 studentName中的内容x:out

17、代码中使用设定 select 属性为该变量名(必须加上“$”字符,可以将这些内容全部输出。运行程序,页面效果如图 7-8代码中使用设定 select 属性为该变量名(必须加上“$”字符,可以将这些内容全部输出。运行程序,页面效果如图 7-8 图7-输出XML 的信如果需要取在变量中的部分内容,如希望取出结点中的信息,则可以通设定 select %taglibprefix=c%taglibprefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01x:parse张/姓三/名/学生张/姓三/名张/姓三/名/学生%-将取得的内在studentName变量中-x:set se

18、lect=$studentXml/学生%-输入 studentName中的内容x:out代码中通过设定 select 属性为该结点就能取出变量中相对应的信息。XPath XML 文件片段设置的。如代码相当于。显然使用搭配出使得代码更加简洁,增加了代码的可读性。运行程序,页面效果如图 7-9 图代码中通过设定 select 属性为该结点就能取出变量中相对应的信息。XPath XML 文件片段设置的。如代码相当于。显然使用搭配出使得代码更加简洁,增加了代码的可读性。运行程序,页面效果如图 7-9 图7-输出XML 的信XML 进行条件判断,能够对 XML 进行循环操作,能够遍历整个 XML 库中的

19、流程控制十分类似,不同的是 XPath XML 同XPath 则执行本体内容中的代码,如果为 falsex:ifx:if select=XPathExpres%-将取得的内在studentName变量中-x:set select=$studentXml/学生名:7-6 7-6 下面通过一个示例来介绍如何通过%pagelanguage=javaprefix=curi=h prefix=xHTMLPUBLIC-HTMLx:parse男/学生%-如的值为男,则显示x:if select=$studentXml/学生7-6 7-6 下面通过一个示例来介绍如何通过%pagelanguage=javapr

20、efix=curi=h prefix=xHTMLPUBLIC-HTMLx:parse男/学生%-如的值为男,则显示x:if select=$studentXml/学生=男%-如的值为女,则显示x:if select=$studentXml/学生=女通过判断 XML 7-10 图7-判值使用同样可以对一个示例来介绍如何通过中的属性值进行判断。下面通过%taglibprefix=c属 是否必须默认值XPath 语句是无将判断结在 varName 变量中否无var 范围否该代码中学生id 1。通过1该代码中学生id 1。通过1id 17-11 图7-判前面两个示例中都是使用常数来进行判断的,同样可以

21、在中通过变量来进行判断操XPath EL %taglibprefix=c%taglibprefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01x:parse男%taglibprefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01x:parse男/学生%-判断id属性值x:if select=$studentXml/学生该学生的id通过sId1page 范围中。在用$pageScope:sId 来取得变量 sId 的值。运行程序,页面效果和图 7-11 通过sId1page 范围中。在用$pageScope:sId 来取得变量 sId

22、的值。运行程序,页面效果和图 7-11 中有多个属性值,同样可以通过该代码中学生中有两个属性,其中id 属性值为us 属性值为A。通过的id 属性值为1,且us 属性值为A,则输出“该学生的id 为%pagelanguage=javaimport=java.util.*%taglibprefix=c%taglibprefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01x:parse男/学生%-如果学的id属性值为1,且us 属性值为A,则输出本体内容-x:if select=$studentXml/学生该学生的id为 1,该生的成绩为%-如果学的id属性值为1,且

23、us 属性值为B,则输出本体内容-x:if select=$studentXml/学生该学生的id为 1,该生的成绩为注 意使用$pageScope:sId 而不是$pageScope.sId/学生%-设定变量为sId,值为 1,默在page范围中-c:setvar=sIdx:if select=$studentXml/学生该学生的idA7-12 的id 属性A7-12 的id 属性值为1,且us 属性值为B,则输出“该学生的中对多个属性值进行判断使用“/图7-判在var scope %taglibprefix=c%taglibprefix=x!DOCTYPEHTMLPUBLIC-/W3C/D

24、TDHTML4.01x:parse班级学生0509302一足球一二篮球二/学生学生0509302一乒乓球一二篮球二/学生/班级 id1的同学存在代码中通过判断学生值,如果为真则执行值,将判断的结果保存到变量中。然后通过的本体内容。运行程序,页面效果如图 7-13 图7-输出判断结同类似,同样 库提供和代码中通过判断学生值,如果为真则执行值,将判断的结果保存到变量中。然后通过的本体内容。运行程序,页面效果如图 7-13 图7-输出判断结同类似,同样 库提供和使用 XPath 7-7 7-7 如果要判断的值可能有多种情况,那么使用比使用%taglibprefix=c%taglibprefix=x!

25、DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01属 是否必须默认值XPath 语句是无x:when id2的同学存在 id3的同学存在假设id 1 2,通过假设id 1 2,通过id 1ID 12ID 2ID 7-14 图7-输出判断结%taglibprefix=c%taglibprefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01x:parse班级学生0509302一足球一二篮球二/学生/班级x:when select=$studentXml/班级/学生该学生的IDx:when select=$studentXml/班级/学生该学生的IDI

26、D有误和完全相同,就相当于程序语言中常用的 if 语句,而和和完全相同,就相当于程序语言中常用的 if 语句,而和就相当于 if.else if.else if.else 语句。运行程序,页面效果如图 7-图7-输出判断结同类似,通过可以遍历 Java 集合对象,而通过可以遍历整个 XML x:forEach select=XPathExpresx:parse男/学生%-如果学的id属性值为1,且us 属性值为A,则输出本体内容-x:when select=$studentXml/学生该学生的id1,该生的成绩为%-如果学的id属性值为1,且us 属性值为B,则输出本体内容-x:when se

27、lect=$studentXml/学生该学生的id1,该生的成绩为7-8 7-下面通过一个示例来介绍如何通过XML %pagelanguage=javaimport=java.util.*%taglibprefix=c%taglibprefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTD7-8 7-下面通过一个示例来介绍如何通过XML %pagelanguage=javaimport=java.util.*%taglibprefix=c%taglibprefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01x:parse班级学生0509301/学号/学

28、生学生0509302/学号/学生学生0508301/学号/学生学生0508302/学号/学生/班级%-使用forEach 遍历所有的学生结点x:forEach select=$studentXml/班级/学生属 是否必须默认值XPath 语句是无使用变当前浏览的结点是无varS 当前指到的相关成员信息否开始位置否无结束位置否无迭代间隔数否无代码中使用遍历所有的学生结点,然后通过输出学生结点中的点。在中不用给出完整的 XPath 结”代码中使用遍历所有的学生结点,然后通过输出学生结点中的点。在中不用给出完整的 XPath 结”就是相对于循环中的“$studentXml/班级/学生”来说的。运行程

29、序,页面效果如图 7-16 图7-显示所有学生结点中提供了beginendstep 属性,这和中的相应属性用法完全相同。比如上个示例中,如果只取出第一条和第二条学生信息,就可以通过begin、end 属性来设置,代码如下:%taglibprefix=c%taglibprefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01x:parse班级学生0509301/学号/学生学生0509302/学号/学生学生0508301/学号/学生学生x:out7-17 图7-显示第一个和第二个学生结点7-17 图7-显示第一个和第二个学生结点XML XML XML 就能把 XML 转

30、换成标准的 HTML,从而实现很好的显示效果。XSLT 就相当于 CSS 样式表,而 XML 就相当于 HTML。XML 只关注页面数据,而 XSLT 关注的是显示功能。XML XSLT 3 一种没有本体内容,使用 doc 属性指定 XML 文件。第二种有本体内容,通过本体内容传递参XML 文件和参数。0508302/学号/学生/班级%-取出第一条和第二条学生信息 x:out有本体内容,本体内容包含 XML 7-9 7-9 下面通过一个示例来介绍如何通过换。XSLT 样式文件名为 stu.xsl指定XML 文件和XSLT ?xml=1.0 xsl:stylesheetxsl:template学

31、生信息tr有本体内容,本体内容包含 XML 7-9 7-9 下面通过一个示例来介绍如何通过换。XSLT 样式文件名为 stu.xsl指定XML 文件和XSLT ?xml=1.0 xsl:stylesheetxsl:template学生信息学号xsl:for-eachselect=班级/学生xsl:value-ofxsl:value-of select=学号属 是否必须默认值指定 XML 文件否无指定 XML 文件否无指定 XSLT 样式是无指定 XML 文件的 否无指定 XML 文件的 否无指定 XSLT 样式的 否无转换后的文件否无变范围否转换后的结果对象否无x:transform doc=

32、XMLXML文件XSL 使用或。根据 W3C 的 XSLT 样式表的正确方法是XSL select XPath 级/XML 文件中的学生结点。元素可提取选定结点的值。其中 select 属性指定 XPath XSL 使用或。根据 W3C 的 XSLT 样式表的正确方法是XSL select XPath 级/XML 文件中的学生结点。元素可提取选定结点的值。其中 select 属性指定 XPath “”和“学号”表示提取“学生” 注 意关于 XSLT JSP XSLT 样式,并通过%pagelanguage=javaimport=java.util.*%taglibprefix=c%taglib

33、prefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01x:parse班级学生0509301/学号/学生学生0509302/学号/学生学生0508301/学号/学生xsl:transformxsl:stylesheet/xsl:for-代码中使用XML studentXml 语句导入 XSLT代码中使用XML studentXml 语句导入 XSLT 样式,并制定其编码格式为 gb2312。中指定需要转换的 XML 件以及转换的样式。运行程序,页面效果如图 7-18 图7-转换后显示页!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01学生信息学

34、号学生0508302/学号/学生/班级%-导入XSL文件c:importvar=xslurl=stu.xsl%-进行转换页面源代码中可以通过的转换,XML 样式中。XSLTXMLvalue 属x:paramname=name7-10页面源代码中可以通过的转换,XML 样式中。XSLTXMLvalue 属x:paramname=name7-10 7-10 只能在x:paramname=name属 是否必须默认值参数名是无参数值否无x:paramname=name下面通过一个示例来介绍如何通过XSLT ?xml下面通过一个示例来介绍如何通过XSLT ?xml=1.0 xsl:stylesheetx

35、sl:paramxsl:template学生信息xsl:whentr学号xsl:whentr学号tr学号xsl:for-eachselect=班级/学生x:paramname=nameJSP 文件,在中添加JSP 文件,在中添加%pagelanguage=javaimport=java.util.*%taglib prefix=c%taglib prefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01x:parse班级学生0509301/学号/学生学生0509302/学号/学生学生0508301/学号/学生学生0508302/学号/学生/班级%-导入XSL 文件c

36、:importvar=xslurl=stu2.xsl%-进行转换,并传递参数x:transformdoc=$studentXmlx:paramname=colorxsl:value-ofxsl:value-of select=学号/xsl:for-JSP 代码中设定 color 参数值为 blue。XSLT 样式接收该参数值,并对该参数值进行判断。7-图7-传递参数来改变页面JSP 代码中设定 color 参数值为 blue。XSLT 样式接收该参数值,并对该参数值进行判断。7-图7-传递参数来改变页面显示效技 能 实 前面介绍了关于 理论知识结合实际操作来加深读者对 任务一:XML HTML

37、 JSP XML 文件来保很方便地取出 XML %taglibprefix=c%taglibprefix=x!DOCTYPEHTMLPUBLIC-/W3C/DTDHTML4.01?xml=1.0联系信息JSTL 开发总部/公司名称联系人/联系人 7-20 图7-公司联系信如果希望得到更好的页面显示效果,可以通过 XSLT 任务二:XML 使用 XML 能很方便地保存一条信息,通过 XSLT 运行程序,页面效果如图 7-20 图7-公司联系信如果希望得到更好的页面显示效果,可以通过 XSLT 任务二:XML 使用 XML 能很方便地保存一条信息,通过 XSLT XML 为季后考虑轮休主力标题 %-通过XPa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论