当前位置: 编程技术>java/j2ee
jsp 标准标签库简析
来源: 互联网 发布时间:2014-10-18
本文导语: 一、JSTL简介 引入:在JSP以及javaBean中 ,当我们在网页中使用循环,或者使用对象方法连接数据库时,我们都不可避免的需要使用到jsp的脚本编制元素,其中嵌有大量的java代码,现在开发者想尽可能的避免使用jsp脚本编制元素...
一、JSTL简介
引入:在JSP以及javaBean中 ,当我们在网页中使用循环,或者使用对象方法连接数据库时,我们都不可避免的需要使用到jsp的脚本编制元素,其中嵌有大量的java代码,现在开发者想尽可能的避免使用jsp脚本编制元素,进一步将应用程序的显示层和业务层完全分离,更加有利于应用程序的分工协作,jsp开发者指定了 JSTL ,提供了一组统一的通用的自定义标签文件,并将这些文件组合在一起,形成了jsp标准标签库,即JSTL。
1) 定义:包含编写和开发JSP页面的一组标准标签
a) 特点:为开发者提供了一个无脚本环境,无需编写JAVA脚本
b) 包含
1. 核心标签库
2. SQL标签库
3. 国际化(I18N)与格式化标签库
4. XML标签库
c) 分类 : 两个版本
1. 使用 EL
2. 使用请求时表达式
2) 作用
a) 进一步简化开发,简化页面, 实现页面脱离jsp脚本元素
b) 让页面尽可能少的出现java代码
c) 优势:与EL表达式配合使用,可以用EL 代替属性值 进一步动态改变
3) 使用
a) 导入标签库(Eclipse等工具中需要做这一步)
b) 使用标签库中标签的实施步骤
i. 将JSTL对应的JAR文件:jstl.jar、standard.jar添加到应用程序的WEB-INF/lib目录(这两个jar文件见课件目录” JSTL标签库”)
ii. 在编写的jsp页面中指定标签库的描述信息:
语法:
关于上述语法使用的扩充:
1. 标签别名常用c
2. 标签库的位置:(即uri的设置)
a) 教材上:” http://java.sun.com/jstl/core_rt “ 指向sun公司网站上的库文件地址,注意这里只是个地址指向,即使没有上网,在工具中也已经对应到工程中的路径了(注意:此时要先将标签库的两个jar文件放入”工程WEB-INFlib”目录下。)
b) 也可使用:”/WEB-INF/c.tld ”(但要注意:此时要先将标签库两个jar文件中的一个standard.jar文件解压后的目录META-INF中的所有*.tld文件放入”工程名/WEB-INF/”目录下,即保证该目录下有c.tld文件)
注意:上述两种导入标签库的方式,以第一种为佳,即只需要将两个标签库jar文件放入”工程WEB-INFlib”目录下即可。
c) 在JSP中使用
3.
4. xxxxx就是标签库中提供的各种功能,详述如下:
二、核心标签库-----core 或 c.tld
a) 分类:
1. 通用标签:操作JSP页面创建的范围变量
2. 条件标签:操作条件运算 判断与处理
3. 循环标签:操作循环运算
b) 通用标签
1. 设置,删除,显示在JSP页面内创建的变量值或对象值
2. 变量的范围是由设置时的scope 属性决定
3. 用于设置变量或者对象属性的值
:注意: “变量值” 可以是 EL表达式
4. 用于动态显示数据(功能类似于EL)
1:
2: 注意:表达式 可以是 1》普通的常量值
2》输出已经设置的变量值:${变量的名称}
5. 用于删除创建的变量
a)
(案例:演示上面几个标签)
c) 条件标签
1. 提供条件运算, 两种类型: if choose
2. 语法
a)
b) 。。。。。。。条件体
c)
d) var 存放的是:结果为true 或 false
e) 不能实现else 由下面的实现
3. 语法
a)
i.
ii.需要处理的语句1
iii.
iv.
v.需要处理的语句2
vi.
vii.
viii.需要处理的语句
ix.
b)
(案例 three.jsp)
d) 迭代标签
1. 分两种: forEach forTokens
2. forEach
简单的应用
循环体
用于集合对象的访问
注意:如果没有设置begin,end将检索所有元素,step没设置默认为1
3. forTokens (与有区别,用于轮循一个字符串)
(案例: 演示上面几个标签)
三、SQL 标签库---- sql.tld
一般的企业级的应用是离不开数据库操作的,在许多时候都需要在JSP页面中访问数据库,因此提供对数据库访问的支持就变的十分重要了,在JSTL中的SQL标记库就提供了一套可以对数据库进行访问,查询,更新等操作的标记,极大的方便了JSP页面中数据库访问
1、 作用:用于进行数据库的操作
2、 在JSP页面中加入标签库
3、 具体使用标记
a) 设置数据源
具体用法:
b) 查询数据
具体用法:
①
②
select 语句
操作获取的结果集
${students.rowCount}可返回结果集中的数据行数
${students.columnNames}可返回所有字段的集合
${students.rowByIndex}返回结果集中某行的数据集合
c) 数据更新
具体用法:
①
②
SQL语句
d) 事务应用
具体用法:
或者
其中上面的隔离级别:
read_committed,read_uncommited,repeatable,serializable
注意:如果在事务中设置了dataSource属性,在里面的标记中就不需设置了。
e) 参数设置
① 作用:在作查询或者数据操作时参数的设置
② 使用:通常是做为和标记的子标记
案例:
select * from student where stuage>?
四、国际化和格式化标签----fmt 或 fmt.tld
1、 作用:对数字和日期时间的输出进行标准化,解决中文乱码问题
2、 在jsp页面加入标签库
3、 具体标签的使用
a)
① 作用:用于JSP页面的本地化
② 使用:
b)
① 作用:用于JSP页面数据的格式化
② 使用:
c)
① 作用:用于JSP页面日期的格式化
② 使用:
d)
① 作用:指定请求数据的编码方式
② 使用:
例如:
一般地,也可这样使用:
a) 创建好 属性文件 比如叫 len_zh .properties
b) (zh为中文,en为英文,固定的,Y2课程里会讲到。)
c) (len为自起名称)
d) (属性文件为len_zh .properties)
注意:国际化时,*.properties文件要放在classes目录下。
引入:在JSP以及javaBean中 ,当我们在网页中使用循环,或者使用对象方法连接数据库时,我们都不可避免的需要使用到jsp的脚本编制元素,其中嵌有大量的java代码,现在开发者想尽可能的避免使用jsp脚本编制元素,进一步将应用程序的显示层和业务层完全分离,更加有利于应用程序的分工协作,jsp开发者指定了 JSTL ,提供了一组统一的通用的自定义标签文件,并将这些文件组合在一起,形成了jsp标准标签库,即JSTL。
1) 定义:包含编写和开发JSP页面的一组标准标签
a) 特点:为开发者提供了一个无脚本环境,无需编写JAVA脚本
b) 包含
1. 核心标签库
2. SQL标签库
3. 国际化(I18N)与格式化标签库
4. XML标签库
c) 分类 : 两个版本
1. 使用 EL
2. 使用请求时表达式
2) 作用
a) 进一步简化开发,简化页面, 实现页面脱离jsp脚本元素
b) 让页面尽可能少的出现java代码
c) 优势:与EL表达式配合使用,可以用EL 代替属性值 进一步动态改变
3) 使用
a) 导入标签库(Eclipse等工具中需要做这一步)
b) 使用标签库中标签的实施步骤
i. 将JSTL对应的JAR文件:jstl.jar、standard.jar添加到应用程序的WEB-INF/lib目录(这两个jar文件见课件目录” JSTL标签库”)
ii. 在编写的jsp页面中指定标签库的描述信息:
语法:
关于上述语法使用的扩充:
1. 标签别名常用c
2. 标签库的位置:(即uri的设置)
a) 教材上:” http://java.sun.com/jstl/core_rt “ 指向sun公司网站上的库文件地址,注意这里只是个地址指向,即使没有上网,在工具中也已经对应到工程中的路径了(注意:此时要先将标签库的两个jar文件放入”工程WEB-INFlib”目录下。)
b) 也可使用:”/WEB-INF/c.tld ”(但要注意:此时要先将标签库两个jar文件中的一个standard.jar文件解压后的目录META-INF中的所有*.tld文件放入”工程名/WEB-INF/”目录下,即保证该目录下有c.tld文件)
注意:上述两种导入标签库的方式,以第一种为佳,即只需要将两个标签库jar文件放入”工程WEB-INFlib”目录下即可。
c) 在JSP中使用
3.
4. xxxxx就是标签库中提供的各种功能,详述如下:
二、核心标签库-----core 或 c.tld
a) 分类:
1. 通用标签:操作JSP页面创建的范围变量
2. 条件标签:操作条件运算 判断与处理
3. 循环标签:操作循环运算
b) 通用标签
1. 设置,删除,显示在JSP页面内创建的变量值或对象值
2. 变量的范围是由设置时的scope 属性决定
3. 用于设置变量或者对象属性的值
:注意: “变量值” 可以是 EL表达式
4. 用于动态显示数据(功能类似于EL)
1:
2: 注意:表达式 可以是 1》普通的常量值
2》输出已经设置的变量值:${变量的名称}
5. 用于删除创建的变量
a)
(案例:演示上面几个标签)
c) 条件标签
1. 提供条件运算, 两种类型: if choose
2. 语法
a)
b) 。。。。。。。条件体
c)
d) var 存放的是:结果为true 或 false
e) 不能实现else 由下面的实现
3. 语法
a)
i.
ii.需要处理的语句1
iii.
iv.
v.需要处理的语句2
vi.
vii.
viii.需要处理的语句
ix.
b)
(案例 three.jsp)
d) 迭代标签
1. 分两种: forEach forTokens
2. forEach
简单的应用
循环体
用于集合对象的访问
注意:如果没有设置begin,end将检索所有元素,step没设置默认为1
3. forTokens (与有区别,用于轮循一个字符串)
(案例: 演示上面几个标签)
三、SQL 标签库---- sql.tld
一般的企业级的应用是离不开数据库操作的,在许多时候都需要在JSP页面中访问数据库,因此提供对数据库访问的支持就变的十分重要了,在JSTL中的SQL标记库就提供了一套可以对数据库进行访问,查询,更新等操作的标记,极大的方便了JSP页面中数据库访问
1、 作用:用于进行数据库的操作
2、 在JSP页面中加入标签库
3、 具体使用标记
a) 设置数据源
具体用法:
b) 查询数据
具体用法:
①
②
select 语句
操作获取的结果集
${students.rowCount}可返回结果集中的数据行数
${students.columnNames}可返回所有字段的集合
${students.rowByIndex}返回结果集中某行的数据集合
c) 数据更新
具体用法:
①
②
SQL语句
d) 事务应用
具体用法:
或者
其中上面的隔离级别:
read_committed,read_uncommited,repeatable,serializable
注意:如果在事务中设置了dataSource属性,在里面的标记中就不需设置了。
e) 参数设置
① 作用:在作查询或者数据操作时参数的设置
② 使用:通常是做为和标记的子标记
案例:
select * from student where stuage>?
四、国际化和格式化标签----fmt 或 fmt.tld
1、 作用:对数字和日期时间的输出进行标准化,解决中文乱码问题
2、 在jsp页面加入标签库
3、 具体标签的使用
a)
① 作用:用于JSP页面的本地化
② 使用:
b)
① 作用:用于JSP页面数据的格式化
② 使用:
c)
① 作用:用于JSP页面日期的格式化
② 使用:
d)
① 作用:指定请求数据的编码方式
② 使用:
例如:
一般地,也可这样使用:
a) 创建好 属性文件 比如叫 len_zh .properties
b) (zh为中文,en为英文,固定的,Y2课程里会讲到。)
c) (len为自起名称)
d) (属性文件为len_zh .properties)
注意:国际化时,*.properties文件要放在classes目录下。