分类: Java
2011-11-08 16:49:14
JSTL标签库的使用是为类弥补 html表的不足,规范自定义标签的使用而诞生的。在告别 modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在 jsp页面中出现 java逻辑代码,同时也由于自定义标签的开发难度较大和不利于技术标准化产生了自定义标签库。 JSTL标签库可分为 5类:
q 核心标签库
q I18N格式化标签库
q SQL标签库
q XML标签库
q 函数标签库
本章将对这些内容一一讲述。
9.1 核心标签库JSTL的核心标签库标签共 13个,从功能上可以分为 4类:表达式控制标签、流程控制标签、循环标签、 URL操作标签。使用这些标签能够完成 JSP页面的基本功能,减少编码工作。
( 1)表达式控制标签: out标签、 set标签、 remove标签、 catch标签。
( 2)流程控制标签: if标签、 choose标签、 when标签、 otherwise标签。
( 3)循环标签: forEach标签、 forTokens标签。
( 4) URL操作标签: import标签、 url标签、 redirect标签。
在 JSP页面引入核心标签库的代码为:
<%@ taglib prefix="c" uri="" %>
下面将按照功能分类,分别讲解每个标签的功能和使用方式。
9.2.1 表达式控制标签表达式控制分类中包括
1.
【功能】:用来显示数据对象(字符串、表达式)的内容或结果。
在使用 Java脚本输出时常使用的方式为:
<% out.println(“字符串 ”)%>
<%=表达式 %>
在
web开发中,为了避免暴露逻辑代码会尽量减少页面中的
Java脚本,使用
提示:
JSTL的使用是和
EL表达式分不开的,
EL表达式虽然可以直接将结果返回给页面,但有时得到的结果为空,
【语法 1】:
【语法 2】:
这两种方式没有本质的区别,只是格式上的差别。标签的属性介绍如下。
q value:指定要输出的变量或表达式。
q escapeXml:设定是否转换特殊字符(如 <、 >等一些转义字符),在默认值为 true的情况下直接在输出 <的,如果改为 false将会进行转义输出“ <”等。
q default:为默认输出结果。如果使用表达式得到的结果为 null(注意与空区别),将会输出默认结果。
【示例代码】:代码
9.1演示了
代码
9.1
1 <%@ page pageEncoding="gbk" %>
2 <%@ taglib prefix="c" uri="" %>
3
4
5
6
7
8
9
10
11
12
13
14
【代码解析】:
(
1)第
8行为
( 2)第 9行和第 10行对比,在改变 escapeXml属性后页面输出的转义字符。
( 3)第 11行 value得到 null,如果方法体内有值,将输出方法体中的字符串,否则不输出,第 12行没有输出结果。
程序运行结果如图 9.1所示。
图 9.1 coredemo01.jsp运行结果
【代码解析】:
( 1)直接输出了一个字符串。
( 2)字符串中有转义字符,但在默认情况下没有转换。
( 3)使用了转义字符 <和 >分别转换成 <和 >符号。
( 4)设定了默认值,从 EL表达式 ${null}得到空值,所以直接输出设定的默认值。
( 5)未设定默认值,输出结果为空。
2.
功能:主要用于将变量存取于 JSP范围中或 JavaBean属性中。
语法 1:存值,把一个值放在指定( page、 session等)的 map中。
含义:把一个变量名为 name1值为“值 1”的变量存储在指定的 scope范围内。
语法 2:
值 2
含义:把一个变量名为 name2,值为值 2的变量存储在指定的 scope范围内。
语法 3:
含义:把一个值为“值 3”赋值给指定的 JavaBean的属性名。相当与 setter()方法。
语法 4:
值 4
含义:把一个值 4赋值给指定的 JavaBean的属性名。
提示:从共能上分语法 1和语法 2、语法 3和语法 4的效果是一样的只是把 value值放置的位置不同至于使用那个根据个人的喜爱,语法 1和语法 2是向 scope范围内存储一个值,语法 3和语法 4是给指定的 JavaBean赋值。
【示例代码】:代码给出了给指定
scope范围赋值的示例。使用
代码
9.2 使用
1 <%@ page language="java" pageEncoding="gbk"%>
2 <%@ taglib prefix="c" uri="" %>
3
4
5
6
7
8
9
10
11
12
13
14
15
【代码解析】:
(
1)第
8行通过
( 2)第 9行使用 EL表达式得到 name1的值。
( 3)第 10行把 name2放入 application范围中。
(
4)第
11行使用
EL表达式从
application范围中取值,用
( 5)第 13行不指定范围使用 EL自动查找得到值。
程序运行的结果如图 9.2所示。
图9.2 coredemo02.jsp
在代码中未使用任何 Java脚本使用程序的功能。为了对比期间,代码 9.3给出了使用 Java脚本实现以上功能的例子。
代码 9.3 Java脚本实现值的存取: getvalue.jsp
1 <%@page language="java" pageEncoding="gbk"%>
2
3
4
5
6
7
8
9
10
11
12
【代码解析】:使用 JSP内置对象的方法实现存值和取值的功能。
程序运行结果如图 9.3所示:
图 9.3 getvalue.jsp运行结果
提示:本章示例为了方便期间都是从一个页面中存取,在开发中值的存取是为了不同的 JSP页面之间共享数据
从两个程序对比来看, JSTL实习了使用标签完成取值赋值的功能,减少代码的编写量同时避免了逻辑代码暴露的危险。
【程序示例】:代码
9.4和代码
9.5演示使用
( 1)创建一个 JavaBean对象。
代码 9.4 JavaBean( vo数据传输对象): Person.java
1 package org.olive;
2 public class Person {
3 private String name; //定义私有变量姓名字符串
4 private int age; //定义私用变量年龄整型
5 private char ***; //定义私用变量性别字符性
6 private String home; //定义私用变量家乡字符串
7 public String getName() { //name的 getter方法
8 return name;
9 }
10 public void setName(String name) { //name的 setter方法。
11 this.name = name;
12 }
13 public int getAge() { //age的 getter方法
14 return age;
15 }
16 public void setAge(int age) { //age的 setter方法
17 this.age = age;
18 }
19 public char get***() { //***的 getter方法
20 return ***;
21 }
22 public void set***(char ***) { //***的 setter方法
23 this.*** = ***;
24 }
25 public String getHome() { //home的 getter方法
26 return home;
27 }
28 public void setHome(String home) { //home的 setter方法
29 this.home = home;
30 }
31 }
【代码解析】:一个只有 getter和 setter方法的 JavaBean或者说一个 pojo类,作为一个 vo(数据传输对象)。定义了四个变量 age、 name、 ***和 home。
( 2)创建 JSP页面,实现对值的操作。
代码 9.5 操作 JavaBean: coredemo03.jsp
1 <%@ page language="java" pageEncoding="gbk"%>
2
3 <%@ taglib prefix="c" uri="" %>
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
【代码解析】:
( 1)第 1行设置页面格式和字符编码集。
( 2)第 2行使用 JSP的指令元素指定要使用的 JavaBean。
( 3)第 3行引入 JSTL核心标签库。
( 4)第 9~12行设置 JavaBean的属性值,等同与 setter方法。
( 5)使用 EL表达式得到 JavaBean的属性值,并用 out标签输出。
【关键代码】:
负责实例化 Bean, id指定实例化后的对象名,可以通过 ${person}得到 person在内存中的值(或者使用 person.toString()方法)。
Target指向实例化后的对象, property指向要插入值的参数名。
注意:使用
target时一定要指向实例化后的
JavaBean对象,也就是要跟
使用 Java脚本实例化:
<%@page import=”org.olive.Person”%
<% Person person=new Person(); %>
程序运行结果如图 9.4所示。
图 9.4 coredemo03.jsp运行结果
3.
【语法】:
其中 var属性是必须的, scope可以以省略。
【示例程序】:代码 9.6使用 set标签在 session中插入 2个值,然后用 remove标签移除。
代码
9.6
1 <%@ page language="java" pageEncoding="gbk"%>
2 <%@ taglib prefix="c" uri="" %>
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
【代码解析】:
( 1)第 8~9行使用 set标签向 session中插入三个值: name值为 olive、 age值为 25、 ***值为男。
( 2)第 11~13行使用 out和 EL表达式输出 name、 age、 ***的值。
( 3)第 14行使用 remove标签移除 age的值,然后使用步骤第 11~13行中的三个输出作为比较。
4.
用来处理 JSP页面中产生的异常,并将异常信息存储。
【语法】:
容易产生异常的代码
【参数说明】:
var表示由用户定义存取异常信息的变量的名称。省略后也可以实现异常的捕获,当就不能显示的输出异常信息。
【示例代码】:代码
9.7使用
代码
9.7
1 <%@ page language="java" pageEncoding="gbk"%>
2 <%@ taglib prefix="c" uri="" %>
3
4
5
6
7
8
9
10
11 < c:set target="Dank" property="hao">
12
13
14
15
【代码解析】:
(
1)第
10~12把容易产生异常的代码放在
( 2)第 11行实现了一段异常代码,向一个不存在的 JavaBean中插入一个值。
(
3)第
13行用
EL表达式得到
error的值,并使用
程序结果如图所示。
图 9.5 coredemo05.jsp
图中异常信息的提示为:在
图9.6 程序异常
提示:本示例没有使用捕获
Java脚本的样式,如果使用标签再使用
Java脚本的意义不大,由此可以看出
流程控制标签主要用于对页面简单业务逻辑进行控制。流程控制标签包含有
4个:
1.
【语法 1】:
【语法 2】:
【参数说明】:
( 1) test属性用于存放判断的条件,一般使用 EL表达式来编写。
( 2) var指定名称用来存放判断的结果类型为 true或 false。
( 3) scope用来存放 var属性存放的范围。
【使用场景】:在开发中经常会出现不同用户的权限,首先对用户名进行判断(包括进行数据库验证,该功能可以由 JavaBean实现,使用 EL表达式得到一个布尔型的结果),把判断的结果存放在不同的 JSP范围内(比如常用的 session内),这样在每个页面都可以得到该用户的权限信息,根据不同权限的用户显示不同的结果。
【示例代码】:代码 9.8实现了用户输入用户名提交到自身页面,页面判断用户是否为 admin,如果是将出现欢迎界面,如果不是显示不同结果。
代码
9.8
1 <%@ page language="java" pageEncoding="gbk"%>
2 <%@ taglib prefix="c" uri="" %>
3
4
5
6
7
8
9
10
14
15
16
17
18 ${adminchock}
19
20
【代码解析】:
( 1)第 10~13行创建一个表单,表单中的元素为一个 text文本输入框,一个提交按钮,并把信息提交给本页。
( 2)第 14行使用 if标签进行判断,如果输入的为 admin将显示出定义的字符串,并把检验后的结果赋给 adminchock,存储在默认的 page范围中。
( 3)第 18行使用 EL表达式得到 adminchock的值,如果输入的用户名为 admin将显示 true。
程序运行效果如图 9.7所示。
图 9.7 coredemo06.jsp运行结果
提示:可以把
adminchock的属性范围设置为
session,可以在其他的页面中得到
adminchock的值,使用
2.
这
3个标签通常情况下是一起使用的,
【语法 1】:
…..//业务逻辑 1
…..//业务逻辑 2
….//业务逻辑 3
【语法 2】:
表达式
【语法 3】:
表达式
【参数说明】:
(
1)语法
1为
3个标签的嵌套使用方式,
(
2)语法
2为
(
3)
【示例代码】:代码 9.9设定一个 score变量的值为 85,使用嵌套标签进行判断,根据判断返回结果。
代码 9.9 循环控制标签: coredemo07.jsp
1 <%@ page language="java" pageEncoding="gbk"%>
2 <%@ taglib prefix="c" uri="" %>
3
4
5
6
7
8
9
10
11
12 c:when test="${score>=90}">
13 你的成绩为优秀!
14
15
16 您的成绩为良好 !
17
18
19 您的成绩为及格
20
21
22 对不起,您没有通过考试!
23
24
25
26
【代码解析】:
( 1)第 10行通过 set标签设定 score的值为 85。
(
2)第
12~22行使用
如果大于等于 70小于 90,输出“您的成绩为良好”;大于等于 60小于 70,输出“您的成绩为及格”;其他( otherwise)输出“对不起,您没能通过考试”。
程序运行结果如图 9.8所示。
图 9.8 coredemo07.jsp运行结果
9.2.3 循环标签循环标签主要实现迭代操作。主要包含两个标签:
1.
该标签根据循环条件遍历集合( Collection)中的元素。
【语法】:
本体内容
【参数解析】:
( 1) var设定变量名用于存储从集合中取出元素。
( 2) items指定要遍历的集合。
( 3) varStatus设定变量名,该变量用于存放集合中元素的信息。
( 4) begin、 end用于指定遍历的起始位置和终止位置(可选)。
( 5) step指定循环的步长。
参数类型和相关说明见表 9-1。
表 9-1 循环标签属性说明
|
名称 |
EL |
类型 |
是否必须 |
默认值 |
|
var |
N |
String |
是 |
无 |
|
items |
Y |
Arrays Collection Iterator Enumeration Map String []args |
是 |
无 |
|
begin |
Y |
int |
否 |
0 |
|
end |
Y |
int |
否 |
集合中最后一个元素 |
|
step |
Y |
int |
否 |
1 |
|
varStatus |
N |
String |
否 |
无 |
其中 varStatus有 4个状态属性(见表 9-2)。
表 9-2 varStatus的 4个状态
|
属性名 |
类型 |
说明 |
|
index |
int |
当前循环的索引值 |
|
count |
int |
循环的次数 |
|
frist |
boolean |
是否为第一个位置 |
|
last |
boolean |
是否为第二个位置 |
【示例代码】:代码 9.10实现了遍历的两种方式:设定起始位置、不设定起始位置。同时实现了获得原属的状态信息。
代码
9.10
1 <%@ page contentType="text/html;charset=GBK" %>
2 <%@page import="java.util.List"%>
3 <%@page import="java.util.ArrayList"%>
4 <%@ taglib prefix="c" uri="" %>
5
6
7
8
9
10
11
12 <%
13 List a=new ArrayList();
14 a.add("贝贝 ");
15 a.add("晶晶 ");
16 a.add("欢欢 ");
17 a.add("莹莹 ");
18 a.add("妮妮 ");
19 request.setAttribute("a",a);
20 %>
21
22
23
24
25
26
27
28
29
30
31
32 所在位置,即索引:
33 总共已迭代的次数:
34 是否为第一个位置:
35 是否为最后一个位置:
36
37
38
【代码解析】:
( 1)第 13~18行通过 Java脚本创建了一个集合对象 a,并添加元素。
( 2)第 19行使用 setAttribute()方法把集合存入 request范围内。
( 3)第 22~24行未指定 begin和 end属性,直接从集合开始遍历到集合结束为止。
( 4)第 26~28行指定从集合的第二个( index值为 1)元素开始,到第四个( index值为 3)元素截止( index的值从 0开始)。并指定 step为 2即每隔两个遍历一次。
( 5)第 30~35指定 varStatus的属性名为 s,并取出存储的状态信息。
程序运行结果如图 9.9所示。
图 9.9 coredemo08.jsp运行结果
【总结】:
( 1)从图中可以看到不使用 begin和 end的迭代,从集合的第一个元素开始,遍历到最后一个元素。
( 2)指定 begin的值为 1、 end的值为 3、 step的值为 2,从第二个开始首先得到晶晶,每两个遍历一次,则下一个显示的结果为莹莹, end为 3则遍历结束。
( 3)从指定的 begin和 end的值来看遍历第四个和第五个,因得到莹莹和妮妮。相关状态信息如图所示。
提示:本例使用的 list是在 JSP页面中使用 Java脚本创建的,是因为 JSTL缺少创建集合的功能,在开发中一般不会如此,可通过访问数据库得到数据集合,和通过设定 JavaBean的值得到数据集合
2.
该标签用于浏览字符串,并根据指定的字符将字符串截取。
语法:
【参数说明】
( 1) items指定被迭代的字符串。
( 2) delims指定使用的分隔符。
( 3) var指定用来存放遍历到的成员。
( 4) begin指定遍历的开始位置( int型从取值 0开始)。
( 5) end指定遍历结束的位置( int型,默认集合中最后一个元素)。
( 6) step遍历的步长(大于 0的整型)。
( 7) varStatus存放遍历到的成员的状态信息。
【示例代码】:代码 9.11实现了遍历一个有符号的字符串,把指定的符号移除。指定 begin和 end值,并获得遍历到的元素的状态信息。
代码
9.11
1 <%@ page contentType="text/html;charset=GBK" %>
2 <%@ taglib prefix="c" uri="" %>
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 所在位置,即索引:
19 总共已迭代的次数:
20 是否为第一个位置:
21 是否为最后一个位置:
22
23
24
【代码解析】:
(
1)本示例共实现了
3个
( 2) 13~15行第 2个循环遍历一串带有分隔符的电话号码,不读取分隔符号,将显示一个字符串。
( 3) 16~22行第 3个循环遍历一个带“ *”号的字符串,根据指定的起始位置把元素取出,并显示每个元素的状态信息。
提示:分隔符的作用是根据标识,截取字符串。如果未设定分隔符或在字符串中没有找到分隔付,将把整个元素作为一个元素截取。在实际应用中用于在除去某些符号在页面中显示。
程序运行结果如图 9.10所示。
图 9.10 coredemo08.jsp
JSTL包含
3个与
URL操作有关的标签,分别为:
1.
该标签可以把其他静态或动态文件包含到本
JSP页面。同
语法 1:
[scope=”page|request|session|application”] [charEncoding=”encoding”]> 语法
2:
主要参数见表
9-3。
表
9-3 名称
说明
EL 类型
必须
默认值
url 被导入资源的
URL路径
Y String 是
无
context 相同服务器下其他的
web工程,必须以“
"”开头
Y String 否
无
var 以
String类型存入被包含文件的内容。
N String 否
无
Scope var变量的
JSP范围
N String 否
page charEncoding 被导入文件的编码格式
Y String 否
无
varReader 以
Reader类型存储被包含文件内容
N String 否
无
【参数说明】:
(
1)
URL为资源的路径,当应用的资源不存在时系统会抛出异常,因此该语句应该放在
使用相对路径的实例如下:
aa.txt放在同一文件目录。
如果以“
/”开头表示应用的根目录下。例如:
tomcat应用程序的根目录文件夹为
webapps。导入
webapps下的文件
bb.txt的编写方式为:
如果访问
webapps管理文件夹中其他
web应用就要用
context属性。
(
2)
context属性用于在访问其他
web应用的文件时,指定根目录。例如,访问
root下的
index.jsp的实现代码为:
等同于
webapps/root/index.jsp (
3)
var、
scope、
charEncoding、
varReader是可选属性。具体使用方式见示例代码。
【示例代码】:代码
9.12实现了从绝对路径导入文件和从相对路径导入,同时使用
var对象指定用变量来存储文件,并输出存入的文件内容。
代码
9.12 1 <%@ page contentType="text/html;charset=GBK" %> 2 <%@ taglib prefix="c" uri="" %> 3 4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
【代码解析】:
(
1)第
12行使用绝对路径导入百度首页,导入时使用
( 2)使用相对路径导入同一文件夹下的 a1.txt文件,接收的字符编码格式使用 charEncoding设置为 gbk。
(
3)同样导入
a1.txt,不同的时使用
var定义的变量接收要导入的文件,并存储在
session中,如果在其他页面同样也要导入该文件,只须使用
程序结果如图 9.11所示。
图 9.11 coredemo10.jsp运行结果
【说明】:
( 1)在使用绝对路径导入时,因为电脑没有联网所以抛出异常。
(
2)使用相对路径输出时,同样是引入的
a1.txt文件显示的结果却不相同,这可以说明直接使用
提示:读者在练习时可以使用 Tomcat的首页来导入 url=””来显示效果。
2.
该标签用来实现了请求的重定向。同时可以在 url中加入指定的参数。例如:对用户输入的用户名和密码进行验证,如果验证不成功重定向到登录页面;或者实现 web应用不同模块之间的衔接。
【语法 1】:
【语法 2】:
【参数说明】:
( 1) url指定重定向页面的地址,可以是一个 string类型的绝对地址或相对地址。
( 2)用于导入其他 web应用中的页面。
【示例代码】:代码 9.13实现了当请求页面时重定向到 tomcat首页。
代码
9.13
<%@ page contentType="text/html;charset=GBK" %>
<%@ taglib prefix="c" uri="" %>
【代码解析】
( 1)使用重定向与载入页面不同,载入页面时在本页面中插入其他页面,而重定向是请求转发,等于在页面中重新输入了一次 url。当重定向到某个页面时浏览器中的地址会发生变化。
(
2)使用重定向时不用使用
( 3)在重定向时为 URL添加了两个参数和参数值: uname=olive和 password=01234。
程序运行结果如图 9.12所示。
图 9.12 coredemo11.jsp运行结果
提示:注意图中的 URL地址已经发生转变,同时可以看到传入的参数以参数值。
3.
该标签用于动态生成一个
String类型的
URL,可以同
【语法 1】:指定一个 url不做修改,可以选择把该 url存储在 JSP不同的范围中。
[context=”context”]/> 【语法
2】:给
url加上指定参数及参数值,可以选择以
name存储该
url。
[context=”context”]> 【示例代码】:代码
9.14实现了使用动态生成
url实现了网页的超链接。
代码
9.14 <%@ page contentType="text/html;charset=GBK" %> <%@ taglib prefix="c" uri="" %>使用
url标签生成一个动态的
url,并把值存入
session中
.
程序运行结果如图 9.13所示。
图 9.13 coredemo12.jsp运行结果
单击图中超链接可以直接访问到 Tomcat首页。
9.3 I18N格式标签库JSTL标签提供了对国际化( I18N)的支持,它可以根据发出请求的客户端地域的不同来显示不同的语言。同时还提供了格式化数据和日期的方法。实现这些功能需要 I18N格式标签库( I18N-capable formation tags liberary)。引入该标签库的方法为:
<%@ taglib prefix="fmt" uri="" %>
I18N格式标签库提供了 11个标签,这些 标签从功能上可以划分为 3类如下:
( 1)数字日期格式化。 formatNumber标签、 formatData标签、 parseNumber标签、 parseDate标签、 timeZone标签、 setTimeZone标签。
( 2)读取消息资源。 bundle标签、 message标签、 setBundle标签。
( 3)国际化。 setlocale标签、 requestEncoding标签。
接下将详细介绍这些标签的功能和使用方式。
9.3.1 数字日期格式化数字日期格式化标签共有 6个,用来将数字或日期转换成设定的格式。
1.
该标签依据特定的区域将数字改变为不同的格式来显示。
【语法 1】:
[pattern=”pattern”]
[currencyCode=”code”]
[currencySymbol=”symbol”]
[groupingUsed=”true|false”]
[maxIntergerDigits=”maxDigits”]
[minIntergerDigits=”minDigits”]
[maxFractionDigits=”maxDigits”]
[minFractionDigits=”minDigits”]
[var=”name”]
[scope=page|request|session|application]
/>
【语法 2】:
[pattern=”pattern”] [currencyCode=”code”] [currencySymbol=”symbol”] [groupingUsed=”true|false”] [maxIntergerDigits=”maxDigits”] [minIntergerDigits=”minDigits”] [maxFractionDigits=”maxDigits”] [minFractionDigits=”minDigits”] [var=”name”] [scope=page|request|session|application] > 被格式化的数据
属性说明如表
9-4所示。
表
9-4 名称
说明
EL 类型
必须
默认值
value 要格式化的数据
是
String 是
无
type 指定类型(单位、货币、百分比等)见表
是
String 否
number pattern 格式化的数据样式
是
String 否
无
currencyCode 货币单位代码
是
String 否
无
cuttencySymbol 货币符号(
$、¥)
是
String 否
无
groupingUsed 是否对整数部分进行分组如(
9,
999)
是
boolean 是
true maxIntergerDigits 整数部分最对显示多少位数
是
int 否
无
minIntergerDigits 整数部分最少显示多少位
是
int 否
无
maxFractionDigits 小数部分最多显示多少位
是
int 否
无
minFractionDigits 小数部分最少显示多少位
是
int 否
无
var 存储格式化后的数据
否
String 否
无
scope var的
JSP范围
否
String 否
page Type属性的类型应用见表
9-5. 表
9-5 Type的属性类型
类型
说明
示例
number 数字格式
0.8 currency 当地货币
¥
0.80 percent 百分比格式
80% 【示例代码】:代码
9.14实现了对数字的格式化、货币的格式、货币的格式化。使用
代码
9.14 <%@ page language="java" pageEncoding="gbk"%> <%@ taglib prefix="c" uri="" %> <%@ taglib prefix="fmt" uri="" %>
| 类型 | 使用数据 | 结果 | 说明 |
| 数字格式化 | 108.75 | 使用 pattern可以定义显示的样式。本例设定为 ###.#小数部分将使用四舍五入法。 | |
| 数字格式化 | 9557 | 使用科学计数法。 | |
| 数字格式化 | 9557 | 使用默认分组。 | |
| 数字格式化 | 9557 | 不使用分组。 | |
| 数字格式化 | 9557 | 使用位数限定,根据指定的位数显示,其他数字忽略。例如: 9不被显示。 | |
| 百分比格式化 | 0.98 | 用百分比形式显示一个数据。 | |
| 货币格式化 | 188.88 | 将一个数据转化为货币形式输出。 | |
| 存储数据 | 188.88 |
|
存储的 money的值为 ${money} |
【代码说明】:
( 1)从应用角度可以把属性分为三类:数字格式化、货币格式化、百分比格式化。使用 type指定类型。
( 2)应用于数字格式化的属性有: partten属性、 maxIntegerDigits属性、 minIntegerDigits属性、 maxFractionDigits属性和 minFactionDigits属性。其中 partten属性在设定格式化样式时会比较准确如:四舍五入、科学计数法的使用。而使用 maIntegerDirgits等属性时,只把设定位数以外的数字舍去。
( 3)货币格式化可以使用数字格式化的所有属性。如果有必要建议使用 partten属性。 currencyCode属性和 currencySymbol只用于货币格式化。
( 4)百分比格式化使用到的属性为 type属性、 partten属性,设定 type属性的类型为 percent即可。
(
5)使用
var属性时,会将格式化后的值存在
JSP的某个范围内(一个
String类型的字符串包括符号等)。
( 6)通用属性: type属性、 partten属性、 var属性和 scope属性。
程序运行结果如图 9.14所示。
图
9.14 fmtdemo01.jsp
运行结果
提示:如果给定的数据类型有错误将或产生异常。例如:给定的数据为
aa进行类型转化,将使应用程序无法显示。因此在实际应用中显示的格式化应该放入
2.
将格式化后的数字、货币、百分比都转化为数字类型。
【语法 1】:
[pattern=”pattern”] [parseLocale=”locale”] [intergerOnly=”true|false”] [scope=”page|request|session|application”] /> 【语法
2】:
[pattern=”pattern”] [parseLocale=”locale”] [intergerOnly=”true|false”] [scope=”page|request|session|application”] > Number 属性说明见表
9-6。
表
9-6 名称
说明
EL 类型
是否必须
默认值
value 被解析的字符串
是
String 是
无
type 指定单位(数字、货币、百分比)
是
String 是
number pattern 格式样式
是
String 否
无
parseLocale 用来替代默认区域的设定
是
String,
Java.util. Locale 是
默认本地样式
var 存储已经格式化的数据
否
String 否
无
scope var变量的作用域
否
String 是
page 【示例代码】:代码
9.15实现了从字符串中提取数据,并用合适的数据类型进行存储(浮点性、整型等)。可以对转换后的数据进行加法运算。
代码
9.15 <%@ page language="java" pageEncoding="gbk"%> <%@ taglib prefix="c" uri="" %> <%@ taglib prefix="fmt" uri="" %>
【代码解析】:
(
1)首先使用
(
2)使用
则变量 money转变为一个浮点型的值 188.8,对 188.8进行加运算。
( 3)直接对一个百分比数 98%进行转化。
程序运行结果如图 9.15所示。
图 9.15 fmtdemo02.jsp运行结果
提示:
3.
该标签主要用来格式化日期和时间。
【语法】:
[pattern=”pattern”] [dateStyle=”default|short|medium|long|full”] [timeStyle=”default|short|medium|long|full”] [timeZone=”timeZone”] [var=”name”] [scope=”page|request|session|application”] /> 参数说明见表
9-7。
表
9-7 属性名
说明
EL 类型
必须
默认值
value 将要格式化的日期对象。
是
Java.util.Date 是
无
type 显示的部分(日期、时间或者两者)。
是
String 否
date partten 格式化的样式。
是
String 否
无
dateStyle 设定日期的显示方式。
是
String 否
default timeStyle 设定时间的显示方式。
是
String 否
default timeZone 设定使用的时区。
是
String 否
当地所用时区
var 存储已格式化的日期或时间。
否
String 否
无
scope 指定
var存储的
JSP范围。
否
String 否
无
其中
type属性参数说明见表
9-8。
表
9-8 type属性参数说明
参数名
说明
time 只显示时间
date 只显示时期
both 显示日期和时间
【示例程序】:代码
9.16实现了对日期的格式化,使用了
type、
dateStyle、
timeStyle等属性。
代码
9.16 <%@ page language="java" pageEncoding="gbk"%> <%@ taglib prefix="c" uri="" %> <%@ taglib prefix="fmt" uri="" %>
timeStyle="default">
timeStyle="short">
timeStyle="long">
timeStyle="full">
timeStyle="full">
【代码解析】:
( 1)首先通过配置 JavaBean在页面上实例化 java.util.Date对象。实现代码如下:
( 2)对日期对象进行格式化时 ${date}是一个日期对象,如果给 value设的值为 String时程序会报错。
( 3)设置 type为 both时,将显示日期和时间,同时示例中依次改变 dateStyle和 timeStyle的值作为比较。
程序结果如图 9.16所示。
图 9.16 fmtdemo03.jsp
使用 IE的语言标签可以设置语言种类如图 9.17所示。
9.17 改变使用默认语言
语言设为英文是程序效果如图 9.18所示。
图 9.18 语言为英文状态下的显示
4.
【语法 1】:
[pattern=”pattern”] [parseLocale=”locale”] [dateStyle=”default|short|medium|long|full”] [timeStyle=”default|short|medium|long|full”] [timeZone=”timezone”] [var=”name”] [scope=”page|request|session|application”] /> 【语法
2】:
[pattern=”pattern”] [parseLocale=”locale”] [dateStyle=”default|short|medium|long|full”] [timeStyle=”default|short|medium|long|full”] [timeZone=”timezone”] [var=”name”] [scope=”page|request|session|application”] > Date 【参数说明】参数说明见表
9-9. 表
9-9 属性名
说明
EL 类型
必须
默认值
value 将要格式化的日期时间
是
String 是
无
type 字符串的类型(日期、时间或全部)
EL String 是
date pattern 字符串使用的时间样式
是
String 是
无
parseLocale 取代默认地区设定
是
String 是
默认地区
dateStyle 字符串使用的日期显示方式
是
String 否
default timeStyle 字符串使用的时间显示格式
是
String 否
default timeZone 使用的时区
是
String 否
当地区时
var 使用
var定义的名字保存对象
否
String 否
无
scope var的
JSP范围
否
String 否
page 【示例代码】:代码
9.16实现了以下功能:首先,使用了
代码
9.16:
<%@ page language="java" pageEncoding="gbk"%> <%@ taglib prefix="c" uri="" %> <%@ taglib prefix="fmt" uri="" %>
dateStyle="full" timeStyle="full">
${a}
<%
out.println(pageContext.getAttribute("b").toString());
out.println("
");
out.println(pageContext.getAttribute("b").hashCode());
%>
【代码解析】:
(
1)使用
(
2)使用
( 3)使用 Java脚本进行测试 Date对象的 toString()方法可以输出时间字符串。 hashCode()可以得到一个对象的 hashCode。该方法只能应用于对象,因此可以证明得到的是一个日期对象。
程序运行结果如图 9.19所示。
图 9.19 fmtdemo04.jsp
提示:
5.
该标签用于设定默认时区或者将时区存储在指定的 JSP范围内。
【语法】:
【参数说明】:见表 9-10
表
9-10
|
参数名 |
说明 |
EL |
类型 |
必须 |
默认值 |
|
value |
使用的时区 |
是 |
String Java.util.TimeZone |
是 |
无 |
|
var |
使用 var定义的参数名保存值 |
否 |
String |
否 |
无 |
|
scope |
存储 var的 JSP范围 |
否 |
String |
否 |
page |
value用来设定使用的时区,例如中国使用的时区为 CST,其他的还有 EST、 PST等。可以把时区存储在指定的 JSP范围内,例如存储在 session中,用户访问的所有页面都可以显示使用的设定的时区下对应的时间。
【示例代码】
提示:有关 TimeZone的说明见 JDK帮助文档的 java.util.TimeZone类。
6.
该标签主要用于设置标签体内使用的时区。
【语法】:
…..
使用
读取消息资源用到的标签主要有
4个:
1.
该标签主要用于将资源文件绑定于它的标签体中的显示。
【语法】:
….标签主题
【参数说明】:见表 9-11。
表
9-11
|
参数名 |
说明 |
EL |
类型 |
必须 |
默认值 |
|
basename |
指定使用的资源文件的名称 |
是 |
String |
是 |
无 |
|
prefix |
前置关键字 |
是 |
String |
否 |
无 |
2.
该标签主要用于绑定资源文件或者把资源文件保存在指定的 JSP范围内。
【语法】:
[scope=”page|request|session|application”] > 【参数说明】:见表
9-12。
表
9-12 参数名
说明
EL 类型
必须
默认值
basename 指定使用的资源文件的名称
是
String 是
无
var 指定将资源文件保存的名称
否
String 否
无
scope 设定将资源文件保存的
JSP范围
否
String 否
page 3.
该标签主要负责读取本地资源文件,从指定的消息文本资源文件中读取键值,并且可以将键值保存在指定的
JSP范围内。
【语法
1】:
[scope=”page|request|session|application”] /> 【语法
2】:
[scope=”page|request|session|application”] > 【语法
3】:
[scope=”page|request|session|application”] > key … 【参数说明】:见表
9-13。
表
9-13 参数名
说明
EL 类型
必须
默认值
key 指定键值的名称(索引)
是
String 是
无
bundle 指定消息文本的来源
是
LocalizationContext 否
无
var 指定存储键值的变量名
否
String 否
无
scope 指定
var的作用域
否
String 否
page 提示:建议此处的
bundle使用
EL表达式,因为属性
bundle的类型为
LocalizationContext,而不是一个
String类型的
URL。
【示例代码】:代码
9.17实现从指定的资源文件中读取对应
key的值。
首先编写一个资源文件内容下
name=olive password=01234 使用标签从资源文件中读取相应的值。
代码
9.17 <%@ page language="java" pageEncoding="gbk"%> <%@ taglib prefix="c" uri="" %> <%@ taglib prefix="fmt" uri="" %>
${m}
【代码解析】:
(
1)使用
(
2)使用
(
3)使用
(
4)使用
( 5)输出参数 m的值,加深对 bundle的理解。
程序运行结果如图所示。
图 9.20 fmtdemo05.jsp运行效果
org.person.name=olive
org.personpassword=01234
如果不使用 prefix标签,在取值是要指明前缀。例如:
使用 prefix属性可以简化取值时的代码。
4.
该标签主要用于当
【语法 1】:
【语法 2】:
…标签主体
【示例代码】:
( 1)创建资源文件。在 message.properties文件中增加一个 key和 value。
news={0} welcome to out website!
today is :{1,date}
表达的含义是键 news对应的是一个字符串,字符串中还有动态变量 {0}表示第一个动态变量, {1,date}表示第二个动态变量并且该变量是一个日期类型的对象。
( 2)通过标签从资源文件中取出键值,并给动态变量赋值显示在页面。
代码
9.18
<%@ page language="java" pageEncoding="gbk"%>
<%@ taglib prefix="c" uri="" %>
<%@ taglib prefix="fmt" uri="" %>
【代码解析】:
(
1)使用
(
2)在
(
3)使用
程序运行结果如图 9.21所示。
图 9.21 fmtdemo06.jsp运行结果
提示:资源文件经过修改后,应用程序需要重载才能生效。
9.3.3 国际化国际化这个分类中共包含两个标签:用于设定语言地区
1.
【语法】:
[scope=”page|request|session|application”]> 【参数说明】:见表
9-14。
表
9-14 参数名
说明
EL 类型
必须
默认值
value 指定区域代码
是
String java.util.Locale 是
无
variant 操作系统的类型
是
String 是
无
scope 设定时区的作用范围
否
String 是
page value属性用来指定使用的语言代码,可以从浏览器的【工具】
---【
Internet选项】
---【语言】
---【添加】中查看浏览器支持的语言种类及语言代码。例如:中文(
zh_cn)、台湾(
zh_tw)、香港(
zh_mo)等。
【示例代码】:代码
9.19实现了设定不同的区域代码,根据不同的区域代码浏览将显示不同格式的日期。
代码
9.19 <%@ page language="java" pageEncoding="gbk"%> <%@ taglib prefix="c" uri="" %> <%@ taglib prefix="fmt" uri="" %>
【代码解析】:
(
1)浏览器默认跟您使用的操作系统的语言相同,因此默认值
zh_cn。使用
( 2)使用的语言修改为 zh_cn,再次用格式化输出。
( 3)使用语言修改为 zh_TW,输出格式化后的时间。
程序运行结果如图所示。
图9.22 fmtdemo07.jsp运行结果
2.
该标签用于设定请求的编码格式。功能同 servletRequest.setCharacterEncoding()方法相同。
【语法】:
【参数说明】:
value属性用来指定使用的编码集例如: gbk、 gb2312等。当没有给出 value的值时将会自动搜索取寻找合适的编码方式,因此能够很好的解决中文乱码问题。
9.4 SQL标签库JSTL提供了与数据库相关操作的标签,可以直接从页面上实现数据库操作的功能,在开发小型网站是可以很方便的实现数据的读取和操作。本章将详细介绍这些标签的功能和使用方法。
SQL标签库从功能上可以划分为两类:设置数据源标签、 SQL指令标签。
引入 SQL标签库的指令代码为:
<%@ taglib prefix="sql" uri="" %>
9.4.1 设置数据源使用
【语法 1】:直接使用已经存在的数据源。
[scope=”page|request|session|application”]/> 【语法
2】:使用
JDBC方式建立数据库连接。
user=”username” password=”pwd” [var=”name”] [scope=”page|request|session|application”]/> 【参数说明】:见表
9-15 表
9-15 参数名
说明
EL 类型
必须
默认值
dataSource 数据源
是
String Javax.sql.DataSource 否
无
driver 使用的
JDBC驱动
是
String 否
无
url 连接数据库的路径
是
String 否
无
user 连接数据库的用户名
是
String 否
无
password 连接数据库的密码
是
String 否
无
var 指定存储数据源的变量名
否
String 否
无
scope 指定数据源存储的
JSP范围
否
String 否
page 提示:是否必须是相对的,比如说如果使用数据源则,
driver、
url等就不再被使用。如果使用
JDBC则要用到
driver、
url、
user、
password属性。
例如连接
SQL Server需要进行如下配置:
Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver" url=” jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=pubs" user=”sa” password=”” 使用
url=”jdbc.microsoft:sqlserver://localhost:1433;DatabaseName=pubs” user=”sa” password=””> 如果连接其他数据库,只须把相对应的项修改即可。
提示:可以把数据连接的配置存入
session中,如果再用到数据库连接只须配置使用
DataSource属性。
JSTL提供了
1.
【语法
1】:
[dataSource=”dateSource”] [maxRow=”maxRow”] [startRow=”starRow”]/> 【语法
2】:
[dataSource=”dateSource”] [maxRow=”maxRow”] [startRow=”starRow”] > sqlQuery 【属性说明】:见表
9-16。
表
9-16 参数名
说明
EL 类型
必须
默认值
sql 查询数据的
SQL语句
是
String 是
无
dataSource 数据源对象
是
String Javax.sql.DataSoutce 否
无
maxRow 设定最多可以暂存数据的行数
是
String 否
无
startRow 设定从那一行数据开始
是
String 否
无
var 指定存储查询结果的变量名
否
String 是
无
scope 指定结果的作用域
否
String 否
page 使用
一般情况下使用
maxRows和
startRow属性用来操作结果集,使用
SQL语句首先吧数据放入内存中,检查是否设置了
startRow属性,如果设置了就从
starRow指定的那一行开始取
maxRows个值,如果没有设定则从第一行开始取。
表
9-17 结果集参数说明
属性名
类型
说明
rowCount int 结果集中的记录总数
Rows Java.util.Map 以字段为索引查询的结果
rowsByIndex Object[] 以数字为作索引的查询结果
columnNames String[] 字段名称数组
limitedByMaxRows boolean 是否设置了
maxRows属性来限制查询记录的数量
提示:
limitedByMaxRows用来判断程序是否收到
maxRows属性的限制。并不是说设定了
maxRows属性,得到结果集的
limitedByMaxRows的属性都为
true,当取出的结果集小于
maxRows时,则
maxRows没有对结果集起到作用此时也为
false。例如可以使用
startRow属性限制结果集的数据量。
结果集的作用就是定义了数据在页面中的显示方式。下面给出了结果集每个属性的作用。
q
rowCount属性。该属性统计结果集中有效记录的量,可以使用于大批量数据分页显示。
q
Rows属性。等到每个字段对应的值。返回的结果为:字段名
={字段值···
} q
rowsByIndex属性。常用得到数据库中数据的方式,从有效行的第一个元素开始遍历,到最后一个有效行的最后一个元素。
q
columnNames属性。用于得到数据库中的字段名。
q
limitedByMaxRows属性。用于判断是否受到了
maxRows的限制。
【示例代码】:代码
9.20给出了配置数据库连接,和使用
代码
9.20 数据库示查询示例:
sqldemo01.jsp <%@ taglib prefix="c" uri="" %> <%@ taglib prefix="sql" uri="" %> <%@ page contentType="text/html;charset=GBK"%> SQL标签库
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs" user="sa" password="" /> 结果集的实质是:
${result} 得到的行数为:
${result.rowCount} 是否收到了
maxRows的限制:
${result.limitedByMaxRows}
|
|
【代码解析】:
(
1)配置数据源。使用
(
2)使用
提示:在进行数据源配置时程序不会检查数据库连接是否配置正确,直接根据设定的数据库及连接访问,如果没有找到则抛出操作的表异常,因此要放如
( 3)使用结果集的 rowCount属性得到记录的总量。代码为:
${result.rowCount}
( 4)使用结果集的 limitedMaxRows属性判断是否收到 maxRows设定的影响。代码为:
${result.limitedMaxRows}
(
5)从结果集中得到数据库中定义的所有的字段。
${result.columnnames}得到的结果是一个字符串数组,因此需要使用
( 6)从结果集中得到所有的值。首先要遍历每一行,然后遍历每一行中的元素,因此需要循环嵌套。代码如下:
提示:在代码解析中省略了 html元素表格等标签的元素,本示例适用于任何数据库表,只要把数据库的 URL、使用的 JDBC进行相应的配置和操作的数据表名进行相应的修改即可看到结果。
程序运行结果如图 9.23所示。
图 9.23 查询操作结果图
2.
【语法 1】: SQL语句放在标签属性中。
[dateSource=”dateSource”]/>
【语法 2】: SQL语句放在标签体内。
[dateSource=”dateSource”] > SQL语句
【参数说明】:见表 9-18。
表
9-18
|
参数名 |
说明 |
EL |
类型 |
必须 |
默认值 |
|
sql |
查询数据的 SQL语句 |
是 |
String |
是 |
无 |
|
dataSource |
数据源对象 |
是 |
String Javax.sql.DataSoutce |
否 |
无 |
|
var |
指定存储查询结果的变量名 |
否 |
String |
是 |
无 |
|
scope |
指定结果的作用域 |
否 |
String |
否 |
page |
提示:
使用
【示例代码】:代码 9.21实现了创建一个表、实现数据的插入。
代码 9.21 数据库创建、数据插入示例: sqldemo02.jsp
<%@ taglib prefix="c" uri="" %>
<%@ taglib prefix="sql" uri="" %>
<%@ page contentType="text/html;charset=GBK"%>
SQL标签库
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs" user="sa" password="" /> 实现数据库表的创建
create table c_user ( id int primary key , name varchar(80), *** varchar(80), ) insert c_user values(05,'Linda','女
') insert c_user values(01,'Rom','男
' ) 影响的记录数为:
【代码解析】:
( 1)配置数据源。
(
2)使用
( 3)向表中插入两行数据。
提示:本示例也没有针对固定的表进行操作,在使用时直接运行即可,如果使用的是其他数据库,需要更改数据源配置和 SQL语句部分修改。
程序运行结果如图 9.24所示。
图 9.24 sqldemo02.jsp运行效果
从图
9.24中可以发现,使用
图 9.25 SQL表的内容
3.
【语法 1】:
【语法 2】:
Value
【参数说明】:
value的作用为 SQL中的参数赋值。
【使用示例】:
select * from person where 序号 =?
4.
【语法】:
【参数说明】:
q value属性: java.util.Date类型的参数。
q type属性:指定填充日期的类型 timestamp(全部日期和时间)、 time(填充的参数为时间)、 date(填充的参数为日期)。
5.
【语法】:
[isolation=”read_committed|read_uncommitted|repeatable|serializable”] > JSTL提供了操作
xml文件的标签库,使用
xml标签库可以省去使用
Dom和
SAX标签库的繁琐,能轻松的读取
xml文件的内容。
1.
【语法
1】:
{var=”name”[scope=”page|request|session|application”]|varDom=”name”[scope=”page|request|session|application”]} systemId=”systemId” filter=”filter” /> 【语法
2】:
{var=”name”[scope=”page|request|session|application”]|varDom=”name”[scope=”page|request|session|application”]} systemId=”systemId” filter=”filter” > xmlDocument 【参数说明】:见表
9-20。
表
9-20 属性名
说明
EL 类型
必须
默认值
doc 指定解析的
xml文件
是
String/Reader 是
无
var 存储解析后的
xml文件
否
String 否
无
scope 指定
var的
JSP范围
否
String 否
page varDom 以(
org.w3c.dom.Doucemet)的形式存储解析的
xml文件
否
String 否
无
scopeDom 指定
varDom的
JSP范围
否
String 否
page systemId xml文件的
url 是
String 否
无
filter 解析
xml文件的过滤器
否
Org.xml.sax.Filter 否
无
提示:
doc指定解析的
xml文件并不是指定
xml文件的路径,而是同
例如:如果解析
person.xml文件需要通过如下代码实现对
xml文件的解析。
2.
【语法】:
【参数说明】:见表
9-21。
表
9-21 属性名
说明
EL 类型
必须
默认值
select 指定使用的
XPath语句
否
String 是
无
escapeXml 是否转换特殊字符。如
<等
否
boolean 是
true 提示:使用
XPath语句需要用到
xalan.jar支持包,可以从示例程序的
lib中获取,获得直接从
myEclipse中可以找到。
【示例代码】:
3.
【语法】:
【参数说明】:
(
1)
select通过指定的
XPath表达式语句获取节点的值。
(
2)
var指定用于存储值的变量名。
(
3)指定
var的
JSP属性范围。
使用
xml标签库的流程控制标签可以迭代处理
xml文件的内容,流程控制可以分为以下两个方面的内容:
(
1)条件判断。
(
2)循环功能。
1.
【语法
1】:未含有本体内容。
【语法
2】:含有本体内容。
> 本体内容
语法
1只把根据条件表达式得到的结果的存储在
JSP范围中,语法
2根据
【参数说明】:
(
1)
select用来指定使用的
XpathExperssion表达式。
(
2)
var设定标量名用来存储表达式的结果。
(
3)
scope指定
var存储的
JSP属性范围。
2.
同核心标签库的
【语法】:
其中只有
【语法】:
3.
【语法】:
[begin=”begin”][end=”end”][step=”step”] > //标签主体
【参数说明】:见表
9-22。
表
9-22 属性名
说明
EL 类型
必须
默认值
select 指定使用的
XPath语句
否
String 是
无
var 用于存储表达式的结果
否
String 否
无
varStatus 用来存放循环到的变量的相关信息
否
String 否
无
begin 循环的起始位置
是
int 否
无
end 循环的终止位置
是
int 否
无
1.
使用该标签可以轻松的实现
xml到
XSLT的转化。
【语法
1】:
[result=”result”] [var=”name”] [scope=”scopeName”] [xsltSystemId=”xsltsystemid”]/> 【语法
2】:
[result=”result”] [var=”name”] [scope=”scopeName”] [xsltSystemId=”xsltsystemid”] > 【语法
3】:
[result=”result”] [var=”name”] [scope=”scopeName”] [xsltSystemId=”xsltsystemid”] > Xml文件内容
【参数说明】:见表
9-23。
表
9-23 属性名
说明
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.
该标签用来为
【语法
1】:
【语法
2】:
> Value 【参数说明】:
(
1)
name指定参数的名称。
(
2)
value指定参数值。
9.5.3 xml的文件转换