首页 JSTL使用手册

JSTL使用手册

举报
开通vip

JSTL使用手册 JSTL表达式描述表达式描述表达式描述表达式描述 9.1 概述 在 JSP页面中,使用标签库代替传统的 Java片段语言来实现页面的显示逻辑已经不是新技术了,然而, 由自定义标签很容易造成重复定义和非标准的实现。鉴于此,出现了 JSTL(JSP Standard Tag Library)。 大多数 JSP页面逻辑提供了实现的 JSTL技术,该技术本身就是一个标签库。 Sun公司 Java规范标准的 JSTL由 apache jakarta组织负责维护。作为开源的标准技术,它一直在不 断地完善。...

JSTL使用手册
JSTL表达式描述表达式描述表达式描述表达式描述 9.1 概述 在 JSP页面中,使用标签库代替传统的 Java片段语言来实现页面的显示逻辑已经不是新技术了,然而, 由自定义标签很容易造成重复定义和非标准的实现。鉴于此,出现了 JSTL(JSP Standard Tag Library)。 大多数 JSP页面逻辑提供了实现的 JSTL技术,该技术本身就是一个标签库。 Sun公司 Java规范标准的 JSTL由 apache jakarta组织负责维护。作为开源的标准技术,它一直在不 断地完善。JSTL的发布包有两个版本:Standard-1.0 Taglib、Standard-1.1 Taglib,它们在使用时是不同 的。 8 Standard-1.0 Taglib(JSTL1.0)支持 Servlet2.3和 JSP1.2规范,Web应用服务器 Tomcat4 支持这些规范,而它的发布也在 Tomcat 4.1.24测试通过了。 8 Standard-1.1 Taglib(JSTL1.1)支持 Servlet2.4和 JSP2.0规范,Web应用服务器 Tomcat5 支持这些规范,它的发布在 Tomcat 5.0.3测试通过了。 在本章的介绍中,将以由 Sun发布的 Standard-1.1 Taglib标签库为主,而 apache jakarta组织发布的开 源标签库,可以从 http://jakarta.apache.org/taglibs/找到所需要的帮助。Sun发布的标准 JSTL1.1标签库有以 下几个标签: 8 核心标签库:包含Web应用的常见工作,比如:循环、表达式赋值、基本输入输出等。 8 国际化标签库:用来格式化显示数据的工作,比如:对不同区域的日期格式化等。 8 数据库标签库:可以做访问数据库的工作。 8 XML标签库:用来访问 XML文件的工作,这是 JSTL标签库的一个特点。 8 函数标签库:用来读取已经定义的某个函数。 此外,JSTL还提供了 EL表达式语言(Expression Language)来进行辅助的工作。 9.2 JSTL EL表达式语言 JSTL标签库由标签库和 EL表达式语言两个部分组成。EL在 JSTL 1.0规范中被引入,当时用来作为 Java表达式来工作,而该表达式必须配合 JSTL的标签库才能得到需要的结果。 说明:在 JSTL 1.1规范中,JSP2.0容器已经能够独立的理解任何 EL表达式。EL可以独立出现在 JSP页面 的任何角落。本文随后的内容将以 JSTL 1.1规范作为介绍的重点。 9.2.1 JSTL EL表达式语言简介 表达式语言简介表达式语言简介 表达式语言简介 EL是从 JavaScript脚本语言得到启发的一种表达式语言,它借鉴了 JavaScript多类型转换无关性的特 点。在使用 EL从 scope中得到参数时可以自动转换类型,因此对于类型的限制更加宽松。Web服务器对于 request请求参数通常会以 String类型来发送,在得到时使用的 Java语言脚本就应该是 request.getParameter(“XXX”),这样的话,对于实际应用还必须进行强制类型转换。而 EL就将用户从这种 类型转换的繁琐工作脱离出来,允许用户直接使用 EL表达式取得的值,而不用关心它是什么类型。 下面的示例就是一个 EL表达式,见例 9.1。 例 9.1:简单 EL表达式 <%@ page contentType="text/html; charset=UTF-8"%> ${sampleValue + 1}
这个示例将在 JSP页面显示为“1”,EL表达式必须以“${XXX}”来表示,其中“XXX”部分就是 具体表达式内容,“${}”将这个表达式内容包含在其中作为 EL表达式的定义。本示例可以在满足 JSP2.0 规范的任何Web应用服务器中使用。 9.2.2 EL表达式的默认变量 表达式的默认变量表达式的默认变量 表达式的默认变量 一个 EL表达式包含变量和操作符两个内容。任何存在于 JSP作用范围的 JavaBean都可以被转化成 EL 表达式来使用,它所包含的默认变量如下: 1. .. .默认变量 默认变量默认变量 默认变量 pageScope、 、、 、requestScope、 、、 、sessionScope、 、、 、applicationScope 这 4个默认变量包含 Scope作用范围的参数集合,相当于被保存在 java.util.Map中的某个参数。下面 看简单的示例 9.2: 例 9.2:使用 sessionScope变量的 EL表达式 <%request.getSession().setAttribute("sampleValue", new Integer(10));%> ${sessionScope.sampleValue} 取得保存在 Session中参数的 sessionScope变量的 EL表达式,“.”是 property访问操作符,在这里表 示从 Session中取得“键”为“sampleValue”的参数,并显示出来。显示结果为“10”。 2. .. .默认变量 默认变量默认变量 默认变量 param、 、、 、paramValues 这两个默认变量包含请求参数的集合,param表明请求包含的参数为单一控件,paramValues表明请求 包含的参数为控件数组。下面看一个简单示例 9.3: 例 9.3:提交请求的页面和接受的页面 <%@ page contentType="text/html; charset=UTF-8"%>
在这个页面中定义了两组控件,控件名为“sampleValue”的是一套控件数组,控件名为 “sampleSingleValue”的是单一控件,通过递交将请求参数传送到 SampleJsp.jsp。 <%@ page contentType="text/html; charset=UTF-8"%> ${paramValues.sampleValue[2]}
${param.sampleSingleValue}
这是请求转发到的页面,通过EL表达式的 paramValues变量得到控件数组中最后一个控件的递交参数, 通过 EL表达式的 param变量得到单一控件的递交参数。控件数组参数的 EL表达式使用“[]”来指定数组 下标。本示例将显示控件数组中最后一个控件的值“12”和单一控件的值“SingleValue”。 3. .. .默认变量 默认变量默认变量 默认变量 header、 、、 、headerValues 这两个默认变量包含请求参数头部信息的集合,header变量表示单一头部信息,headerValues则表示数 组型的头部信息。 4. .. .默认变量 默认变量默认变量 默认变量 cookie 包含所有请求的 cookie集合,集合中的每个对象对应 javax.servlet.http.Cookie。 5. .. .默认变量 默认变量默认变量 默认变量 initParam 包含所有应用程序初始化参数的集合。 6. .. .默认变量 默认变量默认变量 默认变量 pageContext 等价于 page环境类 javax.servlet.jsp.PageContext的实例,用来提供访问不同的请求参数。 11个默认变量几乎包含了Web应用的所有基本操作,若一个表达式不使用这些变量而直接使用参数 名,那么就采用就近原则。该表达式将使用最近取得的参数值。 9.2.3 EL表达式的操作符 表达式的操作符表达式的操作符 表达式的操作符 EL表达式中还有许多操作符可以帮助完成各种所需的操作,之前的示例中“.”、“[]”就是其中的两 个,下面将用表 9.1来展示所有操作符及它们各自的功能。 表 9.1 EL表达式的操作符 操作符 功能和作用 . 访问一个 bean属性或者 Map entry [] 访问一个数组或者链表元素 () 对子表达式分组,用来改变赋值顺序 ? : 条件语句,比如:条件?ifTrue:ifFalse 如果条件为真,表达式值为前者,反之为后者 + 数学运算符,加操作 - 数学运算符,减操作或者对一个值取反 * 数学运算符,乘操作 / 或 div 数学运算符,除操作 % 或 mod 数学运算符,模操作(取余) == 或 eq 逻辑运算符,判断符号左右两端是否相等,如果相等返回 true,否则返回 false != 或 ne 逻辑运算符,判断符号左右两端是否不相等,如果不相等返回 true,否则返回 false < 或 lt 逻辑运算符,判断符号左边是否小于右边,如果小于返回 true,否则返回 false > 或 gt 逻辑运算符,判断符号左边是否大于右边,如果大于返回 true,否则返回 false <= 或 le 逻辑运算符,判断符号左边是否小于或者等于右边,如果小于或者等于返回 true,否则返回 false >= 或 ge 逻辑运算符,判断符号左边是否大于或者等于右边,如果大于或者等于返回 true,否则返回 false && 或 and 逻辑运算符,与操作赋。如果左右两边同为 true返回 true,否则返回 false || 或 or 逻辑运算符,或操作赋。如果左右两边有任何一边为 true返回 true,否则返回 false ! 或 not 逻辑运算符,非操作赋。如果对 true取运算返回 false,否则返回 true empty 用来对一个空变量值进行判断: null、一个空 String、空数组、 空Map、没有条目的 Collection 集合 func(args) 调用方法, func是方法名,args是参数,可以没有,或者有一个、多个参数.参数间用逗号隔开 这些操作符都是极其有用的,下面通过几个示例来演示它们的使用方法: 例 9.4:几组操作符的示例 ${pageScope.sampleValue + 12}
//显示 12 ${(pageScope.sampleValue + 12)/3}
//显示 4.0 ${(pageScope.sampleValue + 12) /3==4}
//显示 true ${(pageScope.sampleValue + 12) /3>=5}
//显示 false //显示值为 10的 Text控件 可以看到,对于这些示例,程序设计者完全无需管理它们的类型转换,在表达式内部都已经处理了。 有了 EL表达式,在 JSP页面的编程变得更灵活,也更容易。 9.2.4 JSTL标签库介绍 标签库介绍标签库介绍 标签库介绍 在 JSTL1.1中有以下这些标签库是被支持的:Core标签库、XML processing标签库、I18N formatting 标签库、Database access标签库、Functions标签库。对应的标识符见表 9.2所示: 表 9.2 标签库的标识符 标签库 URI 前缀 Core http://java.sun.com/jsp/jstl/core c XML processing http://java.sun.com/jsp/jstl/xml x I18N formatting http://java.sun.com/jsp/jstl/fmt fmt Database access http://java.sun.com/jsp/jstl/sql sql Functions http://java.sun.com/jsp/jstl/functions fn 下面看例 9.5,简单使用标签库的示例。 例 9.5:简单 JSTL标签库示例 <%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> ${i}
在该示例的 JSP页面中声明了将使用 Core标签库,它的 URI为“http://java.sun.com/jsp/jstl/core”,前 缀为“c”。之后,页面中标签就是使用了 JSTL的标签进行了工作。对于该标签的功能,这里 暂时不作具体讲解,只是让读者能够有个简单的概念,了解怎样定义和使用标签库。 9.3 JSTL Core标签库 Core标签库,又被称为核心标签库,该标签库的工作是对于 JSP页面一般处理的封装。在该标签库中 的标签一共有 14个,被分为了四类,分别是: 8 多用途核心标签:。 8 条件控制标签:。 8 循环控制标签:。 8 URL相关标签:。 以下是各个标签的用途和属性以及简单示例。 9.3.1 用于 用于用于 用于显示 显示显示 显示的 的的 的标签 标签标签 标签 标签是一个最常用的标签,用于在 JSP中显示数据。它的属性和描述如表 9.3所示: 表 9.3 标签属性和说明 属性 描述 value 输出到页面的数据,可以是 EL表达式或常量(必须) default 当 value为 null时显示的数据(可选) escapeXml 当设置为 true时会主动更换特殊字符,比如“<,>,&”(可选,默认为 true) 在 JSTL1.0的时候,在页面显示数据必须使用来进行。然而,在 JSTL1.1中,由于 JSP2.0规范 已经默认支持了 EL表达式,因此可以直接在 JSP页面使用表达式。下面看一个示例。 该示例将从 Session查找名为“anyValue”的参数,并显示在页面,若没有找到则显示“no value”。 9.3.2 用于 用于用于 用于赋值 赋值赋值 赋值的 的的 的标签 标签标签 标签 标签用于为变量或 JavaBean中的变量属性赋值的工作。它的属性和描述如表 9.4所示: 表 9.4 标签属性和说明 属性 描述 value 值的信息,可以是 EL表达式或常量 target 被赋值的 JavaBean实例的名称,若存在该属性则必须存在 property属性(可选) property JavaBean实例的变量属性名称(可选) var 被赋值的变量名(可选) scope 变量的作用范围,若没有指定,默认为 page(可选) 当不存在 value的属性时,将以包含在标签内的实体数据作为赋值的内容。下面看一个示例: ${oneString}
该示例将为名为“oneString”的变量赋值为“this is andy”,其作用范围为 page。 9.3.3 用于 用于用于 用于删除 删除删除 删除的 的的 的标签 标签标签 标签 标签用于删除存在于 scope中的变量。它的属性和描述如表 9.5所示: 表 9.5 标签属性和说明 属性 描述 var 需要被删除的变量名 scope 变量的作用范围,若没有指定,默认为全部查找(可选) 下面看一个示例: ${sessionScope.sampleValue}
该示例将存在于 Session中名为“sampleValue”的变量删除。下一句 EL表达式显示该变量时,该变量 已经不存在了。 9.3.4 用于 用于用于 用于异常捕获 异常捕获异常捕获 异常捕获的 的的 的标签 标签标签 标签 标签允许在 JSP页面中捕捉异常。它包含一个 var属性,是一个描述异常的变量,改变量可 选。若没有 var属性的定义,那么仅仅捕捉异常而不做任何事情,若定义了 var属性,则可以利用 var所定 义的异常变量进行判断转发到其他页面或提示报错信息。看一个示例。 ${param.sampleSingleValue[9] == 3} ${err} 当“${param.sampleSingleValue[9] == 3}”表达式有异常时,可以从 var属性“err”得到异常的内容, 通常判断“err”是否为 null来决定错误信息的提示。 9.3.5 用于 用于用于 用于判断 判断判断 判断的 的的 的标签 标签标签 标签 标签用于简单的条件语句。它的属性和描述如表 9.6所示: 表 9.6 标签属性和说明 属性 描述 test 需要判断的条件 var 保存判断结果 true或 false的变量名,该变量可供之后的工作使用(可选) scope 变量的作用范围,若没有指定,默认为保存于 page范围中的变量(可选) 下面看一个示例: It is 12
${visits}
该示例将判断 request请求提交的传入控件数组参数中,下标为“2”的控件内容是否为“12”,若为 12则显示“It is 12”。判断结果被保存在 page范围中的“visits”变量中。 9.3.6 用于 用于用于 用于复杂判断 复杂判断复杂判断 复杂判断的 的的 的、 、、 、、 、、 、标签 标签标签 标签 这三个标签用于实现复杂条件判断语句,类似“if,elseif”的条件语句。 8 标签没有属性,可以被认为是父标签,将作为其子标 签来使用。 8 标签等价于“if”语句,它包含一个 test属性,该属性表示需要判断的条件。 8 标签没有属性,它等价于“else”语句。 下面看一个复杂条件语句的示例。 not 12 not 13,it is 11 not 11 not 13,it is 12 not 11 not 12,it is 13 not 11 、12、13 该示例将判断 request请求提交的传入控件数组参数中,下标为“2”控件内容是否为“11”或“12” 或“13”,并根据判断结果显示各自的语句,若都不是则显示“not 11 、12、13”。 9.3.7 用于循环的 用于循环的用于循环的 用于循环的标签 标签标签 标签 为循环控制标签。它的属性和描述如表 9.7所示: 表 9.7 标签属性和说明 属性 描述 items 进行循环的集合(可选) begin 开始条件(可选) end 结束条件(可选) step 循环的步长,默认为 1(可选) var 做循环的对象变量名,若存在 items属性,则表示循环集合中对象的变量名(可选) varStatus 显示循环状态的变量(可选) 下面看一个集合循环的示例。 <%ArrayList arrayList = new ArrayList(); arrayList.add("aa"); arrayList.add("bb"); arrayList.add("cc"); %> <%request.getSession().setAttribute("arrayList", arrayList);%> ${arrayListI} 该示例将保存在 Session中的名为“arrayList”的 ArrayList类型集合参数中的对象依次读取出来,items 属性指向了 ArrayList类型集合参数,var属性定义了一个新的变量来接收集合中的对象。最后直接通过 EL 表达式显示在页面上。下面看一个简单循环的示例。 ${i}
该示例从“1”循环到“10”,并将循环中变量“i”显示在页面上。 9.3.8 用于 用于用于 用于分隔字符 分隔字符分隔字符 分隔字符的 的的 的标签 标签标签 标签 标签可以根据某个分隔符分隔指定字符串,相当于 java.util.StringTokenizer类。它的属性 和描述如表 9.8所示: 表 9.8 标签属性和说明 属性 描述 items 进行分隔的 EL表达式或常量 delims 分隔符 begin 开始条件(可选) end 结束条件(可选) step 循环的步长,默认为 1(可选) var 做循环的对象变量名(可选) varStatus 显示循环状态的变量(可选) 下面看一个示例。 ${aValue} 需要分隔的字符串为“aa,bb,cc,dd”,分隔符为“,”。begin属性指定从第一个“,”开始分隔,end属 性指定分隔到第三个“,”,并将做循环的变量名指定为“aValue”。由于步长为“2”,使用 EL表达式${aValue} 只能显示“aa cc” 9.3.9 用于 用于用于 用于包含页面 包含页面包含页面 包含页面的 的的 的 标签允许包含另一个 JSP页面到本页面来。它的属性和描述如表 9.9所示: 表 9.9 标签属性和说明 属性 描述 url 需要导入页面的 URL context Web Context该属性用于在不同的 Context下导入页面,当出现 context 属性时,必须以“/”开头,此时也需要 url属性以“/”开头(可选) charEncoding 导入页面的字符集(可选) var 可以定义导入文本的变量名(可选) scope 导入文本的变量名作用范围(可选) varReader 接受文本的 java.io.Reader类变量名(可选) 下面看一个示例。 该示例演示了三种不同的导入方法,第一种是在同一 Context下的导入,第二种是在不同的 Context下 导入,第三种是导入任意一个 URL。 9.3.10 用于 用于用于 用于得到 得到得到 得到 URL地址 地址地址 地址的 的的 的标签 标签标签 标签 标签用于得到一个 URL地址。它的属性和描述如表 9.10所示: 表 9.10 标签属性和说明 属性 描述 value 页面的 URL地址 context Web Context该属性用于得到不同 Context下的 URL地址,当出现 context属性时,必须以“/”开头,此时也需要 url属性以“/”开头(可 选) charEncoding URL的字符集(可选) var 存储 URL的变量名(可选) scope 变量名作用范围(可选) 下面看一个示例: link 得到了一个 URL后,以 EL表达式放入标签的 href属性,达到链接的目的。 9.3.11 用于 用于用于 用于页面重定向 页面重定向页面重定向 页面重定向的 的的 的标签 标签标签 标签 用于页面的重定向,该标签的作用相当于 response.setRedirect方法的工作。它包含 url和 context两个属性,属性含义和标签相同。下面看一个示例。 该示例若出现在 JSP中,则将重定向到当前Web Context下的“MyHtml.html”页面,一般会与 等标签一起使用。 9.3.12 用于 用于用于 用于包含传递参数 包含传递参数包含传递参数 包含传递参数的 的的 的标签 标签标签 标签 用来为包含或重定向的页面传递参数。它的属性和描述如表 9.11所示: 表 9.11 标签属性和说明 属性 描述 name 传递的参数名 value 传递的参数值(可选) 下面是一个示例: 该示例将为重定向的“MyHtml.jsp”传递指定参数“userName=’RW’”。 9.4 JSTL XML processing标签库 在企业级应用越来越依赖 XML的今天,XML格式的数据被作为信息交换的优先选择。XML processing 标签库为程序设计者提供了基本的对 XML格式文件的操作。在该标签库中的标签一共有 10个,被分为了 三类,分别是: 8 XML核心标签:。 8 XML流控制标签:。 8 XML转换标签:。 由于该组标签库专注于对某一特定领域的实现,因此本书将只选择其中常见的一些标签和属性进行介 绍。 9.4.1 用于 用于用于 用于解析 解析解析 解析 XML文件 文件文件 文件的 的的 的标签 标签标签 标签 标签是该组标签库的核心,从其标签名就可以知道,它是作为解析 XML文件而存在的。它 的属性和描述如表 9.12所示: 表 9.12 标签属性和说明 属性 描述 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标签库的其他标签来使用。 标签单独使用的情况很少,一般会结合 XML processing标签库中的其他标签来一起工作。下 面看一个示例。 首先给出一个简单的 XML文件,将对该 XML文件做解析,该 XML文件名为 SampleXml.xml。 RW 123456 28 book1 book2 book3 标签库的工作: 该示例读取 XML文件得到了标签的帮助,标签将源 XML文件的内容保存在 “xmlFile”变量中,标签根据“xmlFile”变量的值解析“SampleXml.xml”。 9.4.2 用于显示 用于显示用于显示 用于显示 XML内容的 内容的内容的 内容的标签 标签标签 标签 标签从标签解析后保存的变量中取得需要的 XML文件内容,并显示在页面上。该标 签是通过 XPath技术(定位 XML元素的一种技术)来实现的。要使用标签必须将 xalan-j的 jar包 保存在“WEB-INF/lib”下。它的属性和描述如表 9.13所示: 表 9.13 标签属性和说明 属性 描述 select XPath表达式 escape 当特殊字符如:“<,>,&,’,””出现在取得的结果字符串中时,将以转义字符来替换 标签需要与标签协同工作,下面看一个示例。 name:
passWord:
age:
读取 XML文件并解析后的变量 xmlFileValue将加上“$”作为 XPath表达式的开头,select中的表达 式将从 xml-body根元素下的各个子元素中取得实体内容,最后将结果显示在页面上。根据“SampleXml.xml” 文件的内容,将显示。 name:RW passWord:123456 age:28 9.4.3 用于保存 用于保存用于保存 用于保存 XML内容的 内容的内容的 内容的标签 标签标签 标签 标签允许将某个源XML中元素的实体内容或属性,保存到一个变量中去,它的实现也依靠XPath 技术。它的属性和描述如表 9.14所示: 表 9.14 标签属性和说明 属性 描述 select XPath表达式 var 保存结果的变量名 scope 变量的作用范围(可选) 标签的 var保存的变量由 XPath的结果决定该变量的类型,下面看一个示例。 这里将保存 XML的 name元素内容到变量“thisName”中。 9.4.4 用于判断的 用于判断的用于判断的 用于判断的标签 标签标签 标签 标签允许由 XPath的 boolean()函数得到的判断结果,来判断是否显示其标签所包含的内容。 标签的属性与标签相同,但是 var的结果只能是 boolean类型。 9.4.5 用于复杂判断的 用于复杂判断的用于复杂判断的 用于复杂判断的、 、、 、、 、、 、标签 标签标签 标签 这组标签将一起使用,来提供“if elseif”语句的功能。 标签没有属性,可以被认为是父标签,将作为其子标签来使用。 标签等价于“if”语句,它包含一个 test属性,该属性为 XPath判断表达式。 标签没有属性,它等价于“else”语句。 9.4.6 用于对 用于对用于对 用于对 XML元素循环的 元素循环的元素循环的 元素循环的 标签 标签标签 标签 为对 XML文件中同一名称元素的循环控制标签。它的属性和描述如表 9.15所示: 表 9.15 标签属性和说明 属性 描述 select XPath表达式,结果是一个集合,将对该集合进行循环(可选) begin 开始条件(可选) end 结束条件(可选) step 循环的步长,默认为 1(可选) var 做循环的对象变量名,表示 XPath表达式结果集合中的一个对象(可选) varStatus 显示循环状态的变量(可选) 下面看一个示例。 ${book} 该示例将使用循环读取 XML中多个同存于 books元素下的 book子元素。 9.4.7 格式化 格式化格式化 格式化 XML显示数据的 显示数据的显示数据的 显示数据的标签 标签标签 标签 标签允许使用 XSLT(转换 XML格式的语言)为页面的显示数据做格式化的处理。它的 属性和描述如表 9.16所示: 表 9.16 标签属性和说明 属性 描述 doc 源 XML的内容,该属性的内容应该为 String、java.io.Reader、 javax.xml.transform.Source、org.w3c.dom.Document的实例,或者从两个标签得到。可以用 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类型的实例(可选) 下面看一个示例:

UserName:

PassWord:

age:

这个示例将 XML文件保存的数据信息利用保存在“xmlFile”中,然后使用标签保存 一个 XSLT的源到“xsltdoc”,最后通过格式化 XML文件的数据显示在页面上。 9.4.8 用于参数传递的 用于参数传递的用于参数传递的 用于参数传递的标签 标签标签 标签 标签用于在格式化 XML时传递所需要的参数。它的属性和描述与标签相同,这里 不再赘述。 9.5 I18N formatting标签库 看到 I18N就应该想到知识“国际化”,I18N formatting标签库就是用于在 JSP页面中做国际化的动作。 在该标签库中的标签一共有 12个,被分为了两类,分别是: 8 国际化核心标签:。 8 格式化标签:。 下面只选择其中常见的一些标签和属性进行介绍。 9.5.1 用于设置本地化环境的 用于设置本地化环境的用于设置本地化环境的 用于设置本地化环境的标签 标签标签 标签 标签用于设置 Locale环境。它的属性和描述如表 9.17所示: 表 9.17 标签属性和说明 属性 描述 value Locale环境的指定,可以是 java.util.Locale或 String类型的实 例 scope Locale环境变量的作用范围(可选) 下面看一个示例: 表示设置本地环境为繁体中文。 9.5.2 用于资源文件绑定的 用于资源文件绑定的用于资源文件绑定的 用于资源文件绑定的、 、、 、标签 标签标签 标签 这两组标签用于资源配置文件的绑定,唯一不同的是标签将资源配置文件绑定于它标签体 中的显示,标签则允许将资源配置文件保存为一个变量,在之后的工作可以根据该变量来 进行。 根据 Locale环境的不同将查找不同后缀的资源配置文件,这点在国际化的任何技术上都是一致的,通 常来说,这两种标签单独使用是没有意义的,它们都会与 I18N formatting标签库中的其他标签配合使用。 它们的属性和描述如表 9.18所示: 表 9.18 标签属性和说明 属性 描述 basename 资源配置文件的指定,只需要指定文件名而无须扩展名,二组标签共有的属性 var 独有的属性,用于保存资源配置文件为一个变量 scope 变量的作用范围 下面看一个示例
本文档为【JSTL使用手册】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
最新资料
资料动态
专题动态
is_477865
暂无简介~
格式:pdf
大小:497KB
软件:PDF阅读器
页数:24
分类:互联网
上传时间:2012-12-09
浏览量:83