JSTL XML processing标签库(2)

在企业级应用越来越依赖XML的今天,XML格式的数据被作为信息交换的优先选择。XML processing标签库为程序设计者提供了基本的对XML格式文件的操作。在该标签库中的标签一共有10个,被分为了三类,分别是:
q         XML核心标签:<x:parse>、<x:out>、<x:set>。
q         XML流控制标签:<x:if>、<x:choose>、<x:when>、<x:otherwise>、<x:forEach>。
q         XML转换标签:<x:transform>、<x:param>。
由于该组标签库专注于对某一特定领域的实现,因此本书将只选择其中常见的一些标签和属性进行介绍。
9.4.1 用于解析XML文件的<x:parse>标签
<x:parse>标签是该组标签库的核心,从其标签名就可以知道,它是作为解析XML文件而存在的。它的属性和描述如表9.12所示:
表9.12 <x:parse>标签属性和说明
属性 描述 
doc 源XML的内容,该属性的内容应该为String类型或者java.io.Reader的实例,可以用xml属性来替代,但是不被推荐 
var 将解析后的XML保存在该属性所指定的变量中,之后XML processing标签库中的其他标签若要取XML中的内容就可以从该变量中得到(可选) 
scope 变量的作用范围(可选) 
varDom 指定保存的变量为org.w3c.dom.Document接口类型(可选) 
scopeDom org.w3c.dom.Document的接口类型变量作用范围(可选) 
systemId 定义一个URI,该URI将被使用到XML文件中以接入其他资源文件(可选) 
filter 该属性必须为org.xml.sax.XMLFilter类的一个实例,可以使用EL表达式传入,将对XML文件做过滤得到自身需要的部分(可选) 
其中,var、scope和varDom、scopeDom不应该同时出现,而应该被视为两个版本来使用,二者的变量都可以被XML processing标签库的其他标签来使用。
<x:parse>标签单独使用的情况很少,一般会结合XML processing标签库中的其他标签来一起工作。下面看一个示例。
首先给出一个简单的XML文件,将对该XML文件做解析,该XML文件名为SampleXml.xml。
<?xml version="1.0" encoding="UTF-8"?>
<xml-body>
         <name>RW</name>
         <passWord>123456</passWord>
         <age>28</age>
         <books>
                   <book>book1</book>
                   <book>book2</book>
                   <book>book3</book>
         </books>
</xml-body>
标签库的工作:
<c:import var="xmlFile" url="http://localhost:8080/booksamplejstl/SampleXml.xml"/ >
<x:parse var="xmlFilue" doc="${xmlFile}"/>
该示例读取XML文件得到了<c:import>标签的帮助,<c:import>标签将源XML文件的内容保存在 “xmlFile”变量中,<x:parse>标签根据“xmlFile”变量的值解析“SampleXml.xml”。

9.4.2 用于显示XML内容的<x:out>标签
<x:out>标签从<x:parse>标签解析后保存的变量中取得需要的XML文件内容,并显示在页面上。该标签是通过XPath技术(定位XML元素的一种技术)来实现的。要使用<x:out>标签必须将xalan-j的jar包 保存在“WEB-INF/lib ”下。它的属性和描述如表9.13所示:
表9.13 <x:out>标签属性和说明
属性 描述 
select XPath表达式 
escape 当特殊字符如:“<,>,&,’,””出现在取得的结果字符串中时,将以转义字符来替换 
<x:out>标签需要与<x:parse>标签协同工作,下面看一个示例。
<c:import var="xmlFile" url="http://localhost:8080/booksamplejstl/SampleXml.xml"/ >
<x:parse var="xmlFilue" doc="${xmlFile}"/>
name:<x:out select="$xmlFilue/xml-body/name"/><br>
passWord:<x:out select="$xmlFilue/xml-body/passWord"/><br>
age:<x:out select="$xmlFilue/xml-body/age"/><br>
读取XML文件并解析后的变量xmlFilue将加上“$”作为XPath表达式的开头,select中的表达式将从xml-body根元素下的各个子元素中取得实体内容,最后将结果显示在页面上。根据“SampleXml.xml”文件的内容,将显示。
name:RW
passWord:123456
age:28
9.4.3 用于保存XML内容的<x:set>标签
<x:set>标签允许将某个源XML中元素的实体内容或属性,保存到一个变量中去,它的实现也依靠XPath技术。它的属性和描述如表9.14所示:
表9.14 <x:set>标签属性和说明
属性 描述 
select XPath表达式 
var 保存结果的变量名 
scope 变量的作用范围(可选) 
<x:set>标签的var保存的变量由XPath的结果决定该变量的类型,下面看一个示例。
<c:import var="xmlFile" url="http://localhost:8080/booksamplejstl/SampleXml.xml"/ >
<x:parse var="xmlFilue" doc="${xmlFile}"/>
<x:set select="$xmlFilue/xml-body/name" var="thisName"/>
这里将保存XML的name元素内容到变量“thisName”中。
9.4.4 用于判断的<x:if>标签
<x:if>标签允许由XPath的boolean()函数得到的判断结果,来判断是否显示其标签所包含的内容。<x:if>标签的属性与<x:set>标签相同,但是var的结果只能是boolean类型。
9.4.5 用于复杂判断的<x:choose>、<x:when>、<x:otherwise>标签
这组标签将一起使用,来提供“if elseif”语句的功能。
<x:choose>标签没有属性,可以被认为是父标签,<x:when>、<x:otherwise>将作为其子标签来使用。
<x:when>标签等价于“if”语句,它包含一个select属性,该属性为XPath判断表达式。
<x:otherwise>标签没有属性,它等价于“else”语句。
9.4.6 用于对XML元素循环的 <x:forEach>标签
<x:forEach>为对XML文件中同一名称元素的循环控制标签。它的属性和描述如表9.15所示:
表9.15 <x:set>标签属性和说明
属性 描述 
select XPath表达式,结果是一个集合,将对该集合进行循环(可选) 
begin 开始条件(可选) 
end 结束条件(可选) 
step 循环的步长,默认为1(可选) 
var 做循环的对象变量名,表示XPath表达式结果集合中的一个对象(可选) 
varStatus 显示循环状态的变量(可选) 
下面看一个示例。
<x:forEach select="$xmlFilue/xml-body/books/book" var="book">
${book}
</x:forEach>
该示例将使用循环读取XML中多个同存于books元素下的book子元素。
9.4.7 格式化XML显示数据的<x:transform>标签
<x:transform>标签允许使用XSLT(转换XML格式的语言)为页面的显示数据做格式化的处理。它的属性和描述如表9.16所示:
表9.16 <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类型的实例(可选) 
下面看一个示例:
<c:import var="xmlFile" url="http://localhost:8080/booksamplejstl/SampleXml.xml " />
<c:set var="xsltdoc">
         <?xml version="1.0"?>
         <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform " version="1.0">
                   <xsl:template match="/">
                            <xsl:apply-templates />
                   </xsl:template>
                   <xsl:template match="xml-body">
                            <html>
                                     <head></head>
                                     <body marginheight="0" marginwidth="0" topmargin="0" leftmargin="0">
                                               <h2>
                                                        UserName:
                                                        <xsl:value-of select="name" />
                                               </h2>
                                               <h2>
                                                        PassWord:
                                                        <xsl:value-of select="passWord" />
                                               </h2>
                                               <h2>
                                                        age:
                                                        <xsl:value-of select="age" />
                                               </h2>
                                     </body>
                            </html>
                   </xsl:template>
         </xsl:stylesheet>
</c:set>
<x:transform xslt="${xsltdoc}" doc="${xmlFile}" />
这个示例将XML文件保存的数据信息利用<c:import>保存在“xmlFile”中,然后使用<c:set>标签保存一个 XSLT的源到“xsltdoc”,最后通过<x:transform>格式化XML文件的数据显示在页面上。

9.4.8 用于参数传递的<x:param>标签
<x:param>标签用于在格式化XML时传递所需要的参数。它的属性和描述与<c:param>标签相同,这里不再赘述。
9.5 

I18N formatting标签库
看到I18N就应该想到知识“国际化”,I18N formatting标签库就是用于在JSP页面中做国际化的动作。在该标签库中的标签一共有12个,被分为了两类,分别是:
q         国际化核心标 签:<fmt:setLocale>、<fmt:bundle>、<fmt:setBundle>、<fmt:message>、<fmt:param>、<fmt:requestEncoding>。
q         格式化标 签:<fmt:timeZone>、<fmt:setTimeZone>、<fmt:formatNumber>、<fmt:parseNumber>、<fmt:formatDate>、<fmt:parseDate>。
下面只选择其中常见的一些标签和属性进行介绍。

Spring 4 Security MVC登录登出生产级实战解析 Spring Security 是 Java Web 应用权限控制的核心框架,其认证(Authentication)与授权(Authorization)机制基于过滤器链和 SecurityContext 持久化原理实现,具备细粒度访问控制、CSRF 防护、会话管理等关键安全能力。在传统 Spring MVC 架构中,Security 与 MVC 的深度耦合体现在视图层认证状态同步、控制器方法级权限注解生效、表单提交与 CSRF Token 协同等环节。掌握 login-processing-url 的 PO 阅读详情

相关推荐

JSP购物系统毕业设计交付包:能部署、能演示、能讲清

JSP作为Web开发基础技术,是理解HTTP请求生命周期、Servlet工作原理与会话管理(session)的核心入口。其轻量架构与高调试可见性,特别适合教学场景下的工程实践训练——无需复杂框架即可掌握从页面请求、业务处理到数据库交互的完整链路。结合MySQL数据库设计与Tomcat部署实操,该方案有效支撑毕业设计‘能跑通、能答辩、能溯源’三大刚性需求,广泛应用于高校软件工程类课程设计与毕设指导。文中涵盖JSP安全防护、购物车状态管理、订单事务控制等关键技术点,直击答辩高频问题。

weixin_34326558的博客 375

spring xml配置标签详解

&lt;!-- 指定类的名称 在对bean进行定义时,除了使用id属性来指定名称之外,为了提供多个名称,可以使用alias标签来指定。 --&gt; &lt;alias name="" alias=""/&gt; &lt;!-- applicationContext.xml文件中使用import的方式导入有模块配置文件 --&gt; &lt;import reso...

weixin_33769125的博客 309

JSP购物系统:Java Web工程教学沙盒实战指南

JSP网上购物系统是Java Web开发入门的核心实践载体,其本质并非功能堆砌,而是对Servlet生命周期、JDBC事务控制、Session作用域管理、Tomcat容器机制及SQL注入防护等底层原理的综合验证。作为毕业设计高频选题,它承载着从HTTP请求处理到数据库ACID保障的完整技术链路,尤其适合夯实Web容器运行机制与工程化编码规范。通过真实部署环境适配(如Tomcat线程池配置、JNDI数据源设置)、安全边界设计(BCrypt密码加密、JSTL替代Scriptlet)和调试避坑(断点失效根因、ID

weixin_34216196的博客 418

ViewBinding-LayoutXmlProcessor解析

从mvn查到,当前最新版本4.2.2,

superbigfollicle的博客 467

JSP+Servlet+MySQL学生成绩管理系统教学骨架

JSP、Servlet和MySQL是Java Web开发的三大基础技术,构成经典三层架构的核心支撑。其原理在于通过Servlet处理HTTP请求与响应,JSP实现服务端动态页面渲染,MySQL提供关系型数据持久化,三者协同完成用户交互、业务逻辑与数据存储的完整闭环。这种原生组合虽不具现代框架的开发效率,却能清晰暴露Web应用底层运行机制,具备极高的教学价值与调试可见性。典型应用场景包括高校课程设计、毕业设计开发、转行者Web底层补全及教师教学案例建设。本文提供一套真实可运行的学生成绩管理骨架系统,覆盖环境配

weixin_33563728的博客 229

SQL Server 2025在Windows 11上的安装避坑指南

SQL Server 是微软主流关系型数据库管理系统,其安装与Windows操作系统深度耦合;Windows 11作为新一代桌面平台,强化了基于虚拟化的安全(HVCI)、驱动签名强制策略(WDAC)及内核隔离机制,导致传统数据库部署流程失效。理解二者底层交互原理,是解决服务启动失败、配置管理器无法打开、远程连接被拒等高频问题的技术前提。本文聚焦SQL Server 2025与Windows 11的兼容性挑战,覆盖系统预配置、安装节点诊断、防火墙与服务权限调优等工程实践环节,适用于高校教学、电赛备赛、中小企业

weixin_28741413的博客 323

JSTL XML processing标签库

在企业级应用越来越依赖XML的今天,XML格式的数据被作为信息交换的优先选择。XML processing标签库为程序设计者提供了基本的对XML格式文件的操作。在该标签库中的标签一共有10个,被分为了三类,分别是: q XML核心标签:、、。 q XML流控制标签:、、、、。 q XML转换标签:、。 由于该组标签库专注于对某一特定领域的实现...

iteye_748的博客 253

FPGA人脸识别检测(先获取人脸图像以及灰度二值化)

由于图片有空洞等缺陷,所以后面要进行中值滤波、腐蚀、膨胀等算法处理,然后再对人脸进行框选,最后显示出来。最终的成像应该是下面这样的。(后面有时间再接着做哈哈哈)5、通过modelsim将操作后的图片数据写入gray_img.txt里面后,用matlab将txt转成图片。1、先用matlab将图片转换成txt数据,代码如下。读取图片的方式按照博客咸鱼里的方式来做,如下。2、FPGA读取txt数据。4、FPGA顶层模块及仿真。3、FPGA灰度二值化。

weixin_46312715的博客 2531

Android的AndroidManifest.xml android:process元素说明

android:process可以针对一个组件(activity,broadcast等)。 应用程序的所有组件运行在该进程中。每个组件可以通过设置它自己的process属性来覆盖该设置。 默认情况下,Android为每个应用程序创建一个单独的进程,所有组件运行在该进程中,这个默认进程的名字通常与该应用程序的包名相同。 比如         package="com.lt.myt

android大牛MrJing 活动中心 3万+

从光耦隔离到稳定驱动:信捷伺服与STM32的硬件设计陷阱与救赎

本文深入探讨了信捷伺服驱动器与STM32微控制器配合时的硬件设计关键问题,包括光耦隔离电路选型、电源电压选择、拨码开关设置等核心环节。针对伺服驱动器的稳定驱动需求,提供了从电路设计到抗干扰策略的完整解决方案,帮助工程师规避常见陷阱,提升工业控制系统的可靠性。

gold8的专栏 312

同物种,不同版本之间的坐标转化

是最常用的工具,如果有可用的链文件,这通常是最便捷的方法。CrossMap是一个功能强大的替代工具,支持多种文件格式和物种。自定义生成链文件适用于没有现成资源的情况,虽然复杂一些,但可以满足特定需求。Ensembl 和 Gramene提供的工具适用于支持的物种,尤其在植物基因组领域可能更具优势。选择合适的方法取决于你正在处理的物种、基因组版本以及现有的资源。

qq_40256654的博客 1853

android 组件 :process 标签简析

前言最近遇到一个关于进程问题,这里进行说明一下遇到的问题,项目中需要开启服务进行具体设备信息抓取,然后回传给后端,进行统计。不料 start server ()之后,界面直接卡死。具体原因是什么?系统线程和进程关系没理解清楚。清单文件服务声明方式: <service android:name=".xxxxService" /> <service android:name=".xxxxx

Android 工程化与移动架构实践 1221

DESeq2实战:如何用LRT检验分析基因表达随时间变化的模式(附完整代码)

本文详细介绍了如何使用DESeq2中的LRT检验分析基因表达随时间变化的模式,包括实验设计、数据预处理、模型构建、结果提取与可视化等完整流程。通过实战案例和完整代码,帮助生物信息学研究者掌握时间序列RNA-seq分析的核心技术,特别适合需要快速上手的实践者。

weixin_42620255的博客 473

jsp中导入jsf标签库_JSTL(JSP标准标签库)介绍

前言从JSP 1.1规范开始,JSP就支持在JSP中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL(JavaServer Pages Standard Tag Library)的诞生。因为工作中需要用到JSTL,但网上却苦于找不到有关JSTL的中文资料,所以就有了这篇文章。JSTL简介JSTL是一个不断完善的开放源代码的JSP标签库,是由apache的jakart...

weixin_39986435的博客 643

kettle9.0+ 连接Hadoop报错

kettle bug

x²+(y-√³x²)²=1的博客 1562

高云FPGA系列教程(8):ARM串口数据接收(中断和轮询方式)

GW1NSR-4C ARM部分共有2个串口外设,都挂载在APB1总线上,最高支持波特率921.6Kbit/s,无奇偶校验位,8位数据位,1位停止位,支持高速测试模式 HSTM(High Speed Test Mode),即每个时钟周期输出1位数据,可以在短时间内传输大量数据。官方手册上没有描述发送和接收缓存FIFO的深度,所以不确定是否支持缓存。

whik1194的博客 1687

JSTL XML processing 标签库

JSTL XML processing 标签库:为程序设计者提供了基本的对 XML 格式文件的操作 被分为了三类,分别是:     XML 核心标签: &lt;x:parse&gt; 、 &lt;x:out&gt; 、 &lt;x:set&gt;     XML 流控制标签: &lt;x:if&gt; 、 &lt;x:choose&gt; 、 &lt;x:when&gt; 、 &lt...

programloverjack的专栏 180

一条 POST 创建整棵业务对象树,SAP Gateway Deep Create 的运行机制与 ABAP 实现

SAPUI5 的 OData V2 Model 支持 Deep Create,可以为一个新建的 transient parent context 创建 Navigation Property 下的 subentity,并把这些子实体的数据合并进 Root Entity 对应的 OData 请求 Payload。销售组织是否合法,客户是否允许下单,物料是否存在,销售区域是否匹配,计量单位是否正确,项目类别如何确定,定价是否成功,合作伙伴如何派生,交货工厂如何确定,这些都可能在一次创建过程中被触发。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 149

JSTL XML标签库 使用

转载:http://blog.youkuaiyun.com/peditable/article/details/7756996 JSTL XML processing 标签库:为程序设计者提供了基本的对 XML 格式文件的操作 被分为了三类,分别是:      XML 核心标签: &lt;x:parse&gt; 、 &lt;x:out&gt; 、 &lt;x:set&gt;      XML 流控...

iteye_17267的博客 158

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

JSTL(JSP标准标签库)介绍

JSTL(JSP标准标签库)介绍作者:令少爷(shaoye@dev-club.com) 前言从JSP 1.1规范开始,JSP就支持在JSP中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL(JavaServer Pages Standard Tag Library)的诞生。因为工作中需要用到JSTL,但网上却苦于找不到有关JSTL的中文资料,所以就有了这篇文章。JS

吾欲乘风 1149

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

JSTL标签的用法

 JSTL简介 JSTL是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。但是在即将推出的JSP 2.0中是作为标准支持的。 JSTL目前的最新版本为1.02,最终发布版为1.0。JSTL包含两个部分:标签库和EL(Expression Language表达式语言)语

清水雨潭 841

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JSTL

Jstl的添加第一种方式:在创建web项目的时候,自动添加jstl的标签,在新建项目的JSTL Support中选中add jstl libraries to web_inf/inf folder,即可完成jstl标签的添加。第二种方式:以一种正常的方式创建web项目,然后在项目中手动的添加jstl标签项,如图:点击项目名----右击------选中MyEclipse----...

weixin_34124651的博客 104

【jsp】JSP标准标签库

JSP标签库概述 JSP标准标签库(JSP Standard Tag Library,JSTL)是实现Web应用程序中常见的通用功能的定制标签库集,程序员使用JSTL标签来避免在JSP页面中使用脚本。 本章将介绍JSTL的应用基础、如何从表示层删除源代码来简化软件的维护。 JSTL概述 JSTL英文全称是“JSP Standard Tag Library”,即JSP标准标签

寂寞╮如影随形的博客 441

el/jstl学习

.与 [ ] 运算符 EL 提供 . 和 [ ] 两种运算符来导航数据。下列两者所代表的意思是一样的: ${sessionScope.user.sex}等于${sessionScope.user["sex"]} . 和 [ ] 也可以同时混合使用,如下: ${sessionScope.shoppingCart[0].price} 回传结果为shoppingCart中第一项物品的价格。 ...

lianxiangbus 108

Spring MVC 源码剖析

本文介绍了Spring MVC的Web配置及核心原理,主要包括:1)在web.xml中配置DispatcherServlet前端控制器,指定拦截规则(如*.action)和Spring配置文件位置;2)三种URL拦截方式对比,/方式需特殊处理静态资源;3)通过mvc:resources映射静态资源访问;4)中文乱码解决方案,包括POST请求过滤器和GET请求参数重编码。从Servlet角度分析了DispatcherServlet的继承体系,重点说明FrameworkServlet通过重写service()方

py_1990_04_20的博客 992

asp.net 工具类 XMLProcess

using System; using System.Data; using System.IO; using System.Xml; public class XMLProcess {     #region 构造函数     public XMLProcess()     { }     public XMLProcess(string strPath)

sophia_wjy的专栏 533
上一篇: JSTL XML processing 标签库
下一篇: firefox 插件链接收集
programloverjack
博客等级 码龄17年 5粉丝 252原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值