没有合适的资源?快使用搜索试试~ 我知道了~
JSTL标准标签库的各个标签详细说明,包含了核心标签库(c:),国际化标签库(fmt:)以及函数标签库(fn).注意:SQL标签库(sql:)以及XML标签库(xml:)不应使用,文档中也未提及
资源推荐
资源详情
资源评论
深入体验
JavaWeb
开发内幕—高级特性 张孝祥著 http://www.it315.org
第 8 章 标准标签库(JSTL)
8.1 准备实验环境
本章中所有的例子程序都在名为 的 应用程序中运行,使用的 服务器版
本为 。为了简化代码和突出重点,本章中所有的 JSP 网页文件的例子程序都省略了
<html>、<head>、<title>、<body>等 HTML 全局架构标签。本章中用于描述标签的语法的各种
符号的意义如下:
:表示方括号中的内容是可选的;
:表示花括号中用“字符分隔的各个选项不能同时出
现,只能出现其中的一项;
如果属性的值字体加粗,表示这个值是对应属性的默认值;
如果属性的值用斜体字表示,表示该属性可以是表达式;如果标签体的内容用斜体字表示,
表示标签体的内容可以是 JSP 代码。
为了本章后面讲解的方便,这里先创建一个名为 的 程序,如例程 !"
所示。
例程 !"##$ #
%&#&'
()*#*#
#&#(+'
#&#,-'
#&#--'
## .('
()*# -#+/&#(+0
1(+#2#(+'
()*#&#&+/0
(#(+'
()*# -#3,-/&#,-0
310
深入体验
JavaWeb
开发内幕—高级特性 张孝祥著 http://www.it315.org
1,-#2#,-'
()*#&#&3,-/0
(#,-'
()*# -#4--/&#--0
1--#2#--'
()*#&#&4--/0
(#--'
()*# -#5.(/# .(0
1 .(#2# .('
()*##&5.(/0
(# .('
编译这个源程序,将编译后的 * 文件放在678.49:78;<,)<
<"=+><*<&< 目录中。
311
深入体验
JavaWeb
开发内幕—高级特性 张孝祥著 http://www.it315.org
8.2 JSTL 概述
8.2.1 JSTL 简介
从 3# 规范开始 3 就支持使用自定义标签,使用自定义标签大大降低了 3 页面的复
杂度,同时增强了代码的重用性,因此自定义标签在 应用中被广泛使用。许多 应用
厂商都开发出了自己的一套标签库提供给用户使用,这导致出现了许多功能相同的标签,令网页
制作者无所适从,不知道选择哪一家的好。为了解决这个问题,41#% 小组归纳汇总
了那些网页设计人员经常遇到的问题,开发了一套用于解决这些常用问题的自定义标签库,这套
标签库被 + 公司定义为标准标签库(1# #3&#--#&#)?),
简称 。使用 可以解决用户选用不同 厂商的自定义标签时的困惑,3 规范同时
也允许 容器厂商按 标签库的标准提供自己的实现,以获取最佳性能。
由于 是在 3# 规范中定义的,所以 需要运行在支持 3# 及其更高版本的
容器上,例如,#。
1.JSTL 的逻辑组成
笔者在写本章内容时的 规范的最新版本是 #,它是 3#@ 最新规范中的一个
重要组成部分。# 中包含四个标签库和一组 函数。为方便用户使用,3 规范中描述
了 的各个标签库的 A= 地址和建议使用的前缀名,如表 ! 所示。本章中在使用 标
签时,使用的都是这些建议的前缀。
表 !##
标签库功能描述 标签库的 URI 建议前缀
核心标签库
1BCC$ (C$C$*C
D8 标签库
1BCC$ (C$C$*CE* E
国际化C格式化标签库
1BCC$ (C$C$*CF F
数据库标签库
1BCC$ (C$C$*CG* G*
自定义函数
1BCC$ (C$C$*CF( F
下面对 的各个标签库进行简单的介绍:
(1)核心标签库中包含了实现 应用中的通用操作的标签。例如,用于输出一个变量
内容的6B(;标签、用于条件判断的6BF;标签、用于迭代循环的6BF1;标签。
(2)国际化/格式化标签库中包含实现 应用程序的国际化的标签。例如,设置 3 页
面的本地信息、设置 3 页面的时区、绑定资源文件,使本地敏感的数据(例如数值、日期等)
按照 3 页面中设置的本地格式显示。
(3)数据库标签库中包含用于访问数据库和对数据库中的数据进行操作的标签。例如,从
数据源中获得数据库连接、从数据库表中检索数据等。由于在软件分层的开发模型中,JSP 页面
312
深入体验
JavaWeb
开发内幕—高级特性 张孝祥著 http://www.it315.org
仅用作表现层,我们一般不在 JSP 页面中直接操作数据库,而是在业务逻辑层或数据访问层操作
数据库,所以,JSTL 中提供的这套数据库标签库没有多大的实用价值。
(4)XML 标签库中包含对 XML 文档中的数据进行操作的标签。例如,解析 XML 文档、
输出 XML 文档中的内容,以及迭代处理 XML 文档中的元素。因为 XML 广泛应用于 WEB 开发
对 XML 文档的处理非常重要,XML 标签库使处理 XML 文档变得简单方便,这也是 JSTL 的一个
重要特征。
(5)JSTL 中提供的一套 EL 自定义函数包含了 JSP 页面制作者经常要用到的字符串操作。
例如,提取字符串中的子字符串、获取字符串的长度和处理字符串中的空格等。
2.JSTL 的物理组成
完整的 应包含 SUN 公司提供的 $*$#包和 WEB 容器产商提供的 JSTL 实现包,以
41#%#小组提供的 JSTL 实现包为例,完整的 JSTL 包含 $*$、--$#和
E*$#三个 $#包。sun 公司提供的 $*$#包封装了 JSTL 所要求的一些 API 接口和类,
41#%#小组编写的 #43=#实现类封装在 --$ 包中。由于 JDK 在 JDK 1.5
版本中才引入了 XPath API,而 apache#%#小组开发的 JSTL API 是在 JDK1.5 之前推出的,
所以 apache#%#小组在 JSTL 中使用的是他们自己开发的 XPath API,这些 API 封装在
E*$#包中。--$#包中包括核心标签库、国际化/格式化标签库、数据库标签库中
的标签和标准的 EL 自定义函数的实现类,E*$#包中包括 JSTL 解析 XPath 的相关 API 类。
8.2.2 安装和测试 JSTL
1.下载 JSTL 包
可以从 41 的网站下载 的 $ 包。进入 1BCC$%1&C&*)C#页
面,根据相关的提示信息下载 H 压缩文件,这个压缩文件中包含 的三个 $ 包。
提示:由于网站的不断升级,下载 #的 $ 包的网址可能改变。读者在下载这些文件时,
如果在指定的网址没有下载的链接,可以进入 41 的网站首页,然后根据相关的提示下载
所需的文件。例如,笔者在编写 初稿时,从 1BCC$%1&C&*)C#下载的
压 缩 文 件 中 只 包 含 $*$ 和 --$ 两 个 $ # 包 , 而 E*$ 包 要 从
1BCCE*1&CE*"$C-,*-1*#下载。
2.安装 JSTL
在 中安装 很简单,只要将 的 $ 包复制到6 应用程序;<"=+><
*) 目录下即可。本章中所有的例子程序都在一个名为 的 应用程序中运行,所以,将
的三个 $ 包复制到 678.49:78;<,)<<"=+><*) 目录下即完成了
的安装。
提 示 : # 自 带 的 3 例 子 应 用 程 序 中 提 供 了 使 用 标 签 的 例 子 , 在
678.49:78;<,)<$"E*<"=+><*) 目 录 中 有 的 $*$ 包 和
--$ 包,所以,对于读者来说,如果不使用 的 XML 标签库中的标签,可以直接
将这两个包复制到6 应用程序的主目录;<"=+><*) 目录中,而不用事先从 41 的
网站下载 的 $ 包。
313
深入体验
JavaWeb
开发内幕—高级特性 张孝祥著 http://www.it315.org
3.测试 JSTL
安装完 JSTL 后,接下来就可以准备测试 安装得是否成功了。
Apache 小组在提供 JSTL 时,同时也提供了 JSTL 标签的标签描述文件(即 TLD 文件),它
们 都封 装 在 --$ 包 中 , 位 于 该 jar 文 件 的 META-INF 目 录 中 。 用 WinRAR 打 开
--$ 包,进入 META-INF 目录,可以看到 JSTL 标签的标签库描述文件。查看这些
TLD 源文件,可以看到文件中定义的 6(;#元素的内容与表 ! 中列出的标签库的 A= 相同。
因为 --$#包中封装了 JSTL 标签的标签库描述文件, 在启动时会自动加载
--$ 包中的 84"=+> 目录下的所有 I 文件,所以使用 时不必在 ,)E* 文
件中配置 标签库的 A= 信息,就可以在 3 文件中直接使用 标签。
要在 JSP 文件中使用 JSTL,首先就需要使用 &*) 指令导入所需要使用的 标签库,
&*) 指令的 ( 属性必须为相应标签库的 TLD 文件中的6(;元素的值,&*) 指令的
JE 属性可以自己随意指定,但最好是采用表 ! 中的建议前缀。在 应用程序的主目录
中按例程 !" 编写一个包含 标签的简单 3 文件 $。
例程 !"#$
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:out value="hello world!" />
上面的 $ 页面中的6B(;标签用于向浏览器输出文本内容,它属于 的核心标
签库中的标签。由于在 $ 文件中只使用了 的核心标签库中的标签,所以,只需要使
用一条 &*) 指令导入 的核心标签库,而不必使用多条 &*) 指令导入 的所有标签
库。
启动 后,在浏览器地址栏中输入 test.jsp 页面的地址进行访问,如果浏览器中显示
出了“hello world!,说明 JSTL 安装成功。
8.3 核心标签库
JSTL 核心标签库包含了一组用于实现 WEB 应用中的通用操作的标签,JSP 规范为核心标签
库建议的前缀名为 c。
8.3.1 <c:out>标签
<c:out> 标签用于输出一段文本内容到 pageContext 对象当前保存的“out对象中,在通常情况
下,pageContext 对象当前保存的“out对象的数据是输出到客户端浏览器,所以,<c:out> 标签通
常用于输出一段文本内容到客户端浏览器。如果<c:out> 标签输出的文本内容中包含了需要进行
转义的 HTML 特殊字符,例如,<、>、'、"、&等,<c:out> 标签默认对它们按表 8.2 进行 HTML
编码转换后再进行输出,这样就可以在浏览器中显示出这些字符。
表 8.2 特殊字符转换
314
剩余63页未读,继续阅读
资源评论
- lhqbighead20052019-06-24垃圾,呵呵。d
dexier
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Django和OpenCV的智能车视频处理系统.zip
- (源码)基于ESP8266的WebDAV服务器与3D打印机管理系统.zip
- (源码)基于Nio实现的Mycat 2.0数据库代理系统.zip
- (源码)基于Java的高校学生就业管理系统.zip
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功