|
加入收藏
|
设为首页
|
证书查询
|
首页
|
中心简介
学院简介
中心简介
教学环境
教学模式
课程优势
清华风采
社会形象
大事记
清华声明
|
形象展示
视频下载
|
专业介绍
预科课程
软件工程师
网络工程师
短期课程
职业素养训练
学术专家在线
|
在线学习
net培训
java培训
sql数据库培训
|
证书展示
清华大学证书
工信部证书
学历证书
|
讲师风范
网络专业讲师
软件专业讲师
教务老师
职业规划师
就业指导教师
|
就业指导
网络招聘会
签约流程
战略合作企业
就业心得
就业成果
就业保障体系
面试试题
就业兵法
|
学员社区
学习心得
拓展活动
学生会成员
软件下载
|
班主任群
班主任通知
班主任工作
班主任介绍
班主任心得
|
报名咨询
咨询问题解答
我要报名
清华贴吧
|
就业联盟
免费体验
当前位置:
首页
>>
在线学习
>>
java培训
JSTL基础知识
繁简对译:[
繁
简
] 字体设置:[
大
中
小
]
2008-10-09 阅读 次
第九章
JSTL
基础知识
•
JSTL
的全名为
JavaServerPages Standard Tag Library
,即
JSP
标准标签库,它是由
Apache
基金组织的
jakarta
小组开发维护的,其主要功能是为
JSP Web
开发人员提供一个标准通用的标签库。开发人员可以利用这些标签取代
JSP
页面上的
Java
代码,从而提高程序的可读性、降低程序的维护难度。
9.1
JSTL
简介
•
JSTL
标签是基于
JSP
页面的,这些标签可以插入在
JSP
代码中,在本质上
JSTL
也就是提前定义好了的一组标签,这些标签封装了不同的功能,当在页面上调用这个标签的时候,等于就是调用了封装起来的功能,这些标签可以在页面上输出内容、查询数据库、处理
XML
文档等,
JSTL
的标签库基本上可以分为五类,包括
JSTL
核心库、数据库标签库、
XML
操作标签库、国际化和格式标签库和函数标签库,其中在核心库包括基本的输入输出、流程控制、循环等功能;数据库标签库主要包括基本的数据库操作功能;
XML
标签库用来处理
XML
文档;国际化和格式标签库主要功能是处理国际化和文字格式的标准化。
9.2
JSTL
开发环境简单配置
•
如果要在项目中使用
JSTL
,就需要在配置
JSTL
的环境,
JSTL
环境配置非常简单,首先要下载
JSTL
,(具体内容请参照书。)
9.3
核心标签库
•
JSTL
核心库主要有输入输出、流程控制、迭代操作、
URL
操作等功能,如要要在
JSP
页面中使用核心库的标签,需要用
taglib
指令指明这个标签库的路径为。
•
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
9.3.1
<c:out>
标签
•
<c:out>
标签的功能就相当于
JSP
中的
out
对象,可以在
JSP
页面上打印字符串,也可以打印一个标达式的值。使用语法如下。
<c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"] />
或者使用下面这种格式。
<c:out value="value" [escapeXml="{true|false}"]>
•
default value
•
</c:out>
9.3.2
<c:set>
标签
•
<c:set>
的主要功能是把变量的值设置到
JSP
内置对象中,或者是设置到
JavaBean
的属性中。
<c:set>
的功能和
JSP
动作指令中的
<jsp:setProperty>
类似。(具体内容请参照书。)
9.3.3
<c:remove>
标签
•
<c:remove>
标签执行的功能和
<c:set>
标签的功能正好相反,
<c:remove>
标签可以移除在
<c:set>
标签中设置的变量。具体使用语法如下。
•
<c:remove var="varName" [scope="{ page|request|session|application }"] />
•
在上面这行代码中,必需提供
varName
属性,指明需要移除哪个变量,而
scope
的属性则可有可无。
9.3.4
<c:if>
标签
•
和
JSP
中的
if
功能一样,
<c:if>
的功能也是用来做条件判断,使用语法如下。
•
<c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>
•
结果为真时执行的操作代码
•
</c:if>
9.3.5
<c:choose>
、
<c:when>
、
<c:otherwise>
标签
•
<c:choose>
标签本身没有具体的功能,它仅仅是做为
<c:when>
和
<c:otherwise>
的父标签。为了方便理解,在这里把
<c:choose>
、
<c:when>
、
<c:otherwise>
合并为一节介绍。(具体内容请参照书。)
9.3.6
<c:forEach>
标签
•
<c:forEach>
标签是一个迭代标签,它可以用来做循环的控制,可以循环遍历一个集合中的内容,这里的集合何以是数组、
List
、
Array
、
ListLinkedList
、
set
、
Vector
、
Map
等常用集合对象。(具体内容请参照书。)
9.3.7
<c:forTokens>
标签
•
<c:forTokens>
标签是
JSTL
种的另一个迭代循环标签,它可以用来对一个字符串进行迭代循环,这个字符串是用符号分开的。(具体内容请参照书。)
9.3.8
<c:import>
标签
•
<c:import>
标签可以把其他动态或者静态的文件包含到当前的
JSP
页面,功能和
JSP
动作指令标签
<jsp:include>
类似,但是和
<jsp:include>
不同的是,
<jsp:include>
只可以包含当前
Web
应用的内容,而
<c:import>
标签不仅可以包含当前
Web
应用的内容,而且还可以包含其他
Web
应用的内容,包括其他网站的内容。(具体内容请参照书。)
9.3.9
<c:redirect>
标签
•
<c:redirect>
标签可以把用户的请求从一个页面转向另一个页面,同
JSP
中
response
内置对象的跳转功能类似,这个标签也用两种使用语法,(具体内容请参照书。)
9.3.10
<c:url>
标签
•
<c:url>
标签主要用来产生一个
URL
,这个标签也有两种使用语法,第一种语法如下。(具体内容请参照书。)
9.3.11
<c:param>
标签
•
<c:param>
标签的作用就是向一个页面传递一个参数,其使用语法如下。
•
<c:param name="paramName" value="paramValue"/>
9.3.12
<c:catch>
标签
•
<c:catch>
标签用来捕捉
JSP
页面产生的错误,和
Java
语言中的
catch
功能是类似的。其使用语法如下。
•
<c:catch [var="varName"] >
•
要捕捉异常的部分
•
</c:catch>
9.4
数据库标签库
•
数据库开发在
JSP
中占有非常重要的地位,
JSTL
也提供了对数据库操作的支持,通过是使用
JSTL
,数据库操作可以简化为简单的几个标签,大大提高了数据库开发的效率和程序的可维护性。在接下来的章节中将详细介绍
JSTL
数据库操作标签库。
9.4.1
<sql:setDataSource>
标签
•
<sql:setDataSource>
标签可以用来设置数据源,其使用语法有两种,第一中语法如下。
•
<sql:setDataSource driver="driverName" url="URL" [user="userName"] [password="password"] [var=
”
varName
”
] [scope="{page|request|session|application}" />
9.4.2
<sql:query>
标签
•
在上面我们使用
<sql:setDataSource>
标签已经取得了与数据库的连接,在这个数据连接的基础上就可以对数据库进行各种操作,其中对数据库的查询操作就要用到
<sql:query>
标签
, <sql:query>
标签的作用就是从数据库中取出指定的结果集,其中对数据库的操作还是依靠传递
SQL
语句作为参数。(具体内容请参照书。)
9.4.3
<sql:update>
标签
•
<sql:update>
标签的功能是对数据库进行更新操作,和
<sql:query>
标签的用法类似,
<sql:update>
标签的使用方法也有两种形式,
9.4.4
<sql:param>
标签
•
在第七章讲解数据库开发的时候,已经详细介绍过
PreparedStatement
的使用方法,在使用
PreparedStatement
进行数据库操作的时候,可以使用类似
“
select * from stores where stor_id=?
”
这样的
SQL
语句,其中问号的位置取代的是一个参数,可以在后面动态设置,这样操作的好处在第七章已经详细介绍过。如果在
JSTL
中要实现这样的传递参数的功能,就需要用到
<sql:param>
标签。(具体内容请参照书。)
9.4.5
<sql:dateParam>
标签
•
<sql:dateParam>
标签和
<sql:param>
标签的功能和用法完全相同,不同指出是
<sql:dateParam>
标签是用来设置日期格式的参数,其使用语法如下。
•
<sql:dateParam value=
”
value
”
[type=
”
{timestamp|time|date}
”
]/>
•
其中
,
type
指明了参数的类型
,
time
是时间格式
,
date
是日期格式
,
timestamp
是日期加时间的完整格式。
<sql:dateParam>
标签的使用方法和
<sql:param>
标签是一样的,在这里不再赘述。
9.4.6
<sql:transaction>
标签
•
在
JSTL
中,同样支持数据库操作的事务处理,在
JSTL
中是采用
<sql:transaction>
标签来实现这个功能的。(具体内容请参照书。)
9.5
XML
操作标签库
•
在
Java
中可以使用
SAX
或者
DOM
等
API
接口来操作
XML
文档,尽管这种操作功能非常强大而且灵活,但是要很快熟练掌握是有相当大难度的,在
JSTL
中提供了一组专门处理
XML
文档的标签,这些标签所提供的功能尽管非常有限,但是已经可以满足基本的
XML
文档处理需要,而且这些标签学习起来明显比掌握复杂的
API
接口要容易。接下来的章节中将介绍
JSTL
中用来处理
XML
文档的标签。
9.5.1
<x:parse>
标签
•
<x:parse>
标签可以用来解析一个
XML
文档,这个标签也有两种基本用法,第一种用法的语法格式如下。
<x:parse {doc=
”
xmlDoc
”
|xml=
”
xmlDoc
”
} {var=
”
varName
”
[scope="{page|request|session|application}"]
|varDom=
”
varName
”
[scopeDom="{page|request|session|application}"] }
[systemId=
”
systemId
”
] [filter=
”
filter
”
]/>
9.5.2
<x:out>
标签
•
使用
<x:parse>
把一个
XML
文档解析以后,就可以使用
<x:out>
标签输出
XML
节点的值,
<x:out>
在这里的功能和
<c:out>
有点类似。
<x:out>
标签的使用语法如下。
<x:out select=
”
node
”
[escapeXML=
”
{true|false}
”
]/>
9.5.3
<x:set>
标签
•
<x:set>
标签的功能和
<c:set>
标签的功能类似,这两个标签的功能都是把一个值设置到一个变量中,不同指出在于
<x:set>
标签是把
XML
中某个节点的内容赋值到一个变量。这个标签的使用语法如下。
<x:set select=
”
node
”
var=
”
varName
”
[scope="{page|request|session|application}"]/ >
9.5.4
<x:if>
标签
•
<x:if>
标签的功能和
<c:if>
的功能类似,只不错在这里判断的条件变成了
XPath
表达式,即判断在
XML
文档中是否有满足这个
XPath
表达式的节点。
<x:if>
标签也有两种使用格式,第一种用法的语法如下。
<x:if
select=
”
node
”
var=
”
varName
”
[scope="{page|request|session|application}"]/><x:if>
的另一种用法如下。
<x:if
select=
”
node
”
var=
”
varName
”
[scope="{page|request|session|application}"]>
判断条件成立时执行的操作
</x:if>
9.5.5
<x:choose>
标签
•
<x:choose>
标签是
<x:when>
和
<x:otherwise>
的父标签,其使用方法和核心库中的对应标签
<c:choose>
、
<c:when>
、
<c:otherwise>
的使用方法类似,只不过在这里的判断条件变成了
XPath
的表达式,其他使用方法完全相同,在这里可以参考
<c:choose>
、
<c:when>
、
<c:otherwise>
的使用方法。
9.5.6
<x:forEach>
标签
•
使用
<x:forEach>
标签可以对
XML
文档进行遍历,这个标签的用法和
<c:forEach>
标签的用法非常相似,这个标签的使用语法如下。
<x:forEach [var="varName"]
select=
”
node
”
[varStatus="varStatusName"] [begin="begin"][end="end"] [step="step"]>
循环体中要执行的内容
•
</x:forEach>
9.6
其他标签
•
除了上面介绍的核心库、数据库操作库和
XML
文档处理库,
JSTL
还有其他比较常用的标签库,包括处理国际化和格式的标签库、函数标签库,接下来的章节将简单介绍这两个标签库的基本知识。
9.6.1
国际化标签
•
在
JSTL
可以使用
<fmt:setLocale>
标签设置国家地区参数,从而可以使用本地化的表示方式。另外使用
JSTL
还可以自动根据
Local
的设置搜索资源文件,从而实现其他国际化的问题,这样就需要另外几个国际化标签,包括
<fmt:bundle>
、
<fmt:setBundle>
、
<fmt:message>
、
<fmt:param>
、
<fmt:requestEncoding>
等,其中
<fmt:bundle>
、
<fmt:setBundle>
这两个标签用来绑定资源文件,
<fmt:message>
用于显示资源文件,
<fmt:param>
用于传递参数,
<fmt:requestEncoding>
用来设置请求的字符编码。
9.6.2
数字格式标签
•
JSTL
也可以使用不同的格式来表示数字,可以用百分数或者是货币等,下面是一个综合国家地区设置和数字货币格式的示例程序。(具体内容请参照书。)
9.6.3
日期格式标签
•
使用
JSTL
的标签,可以很方便的处理日期的格式,其中
<fmt:formatDate>
可以把日期格式的对象按照格式输出,而
<fmt:parseDate>
则可以把一个字符串解析成一个日期格式的对象。
9.6.4
函数标签库
•
JSTL
函数标签库就是一些常用的函数,在
JSTL
中把这些常用的函数封装成标签的形式,然后可以在
JSP
页面上进行方便的调用。(具体内容请参照书。)
9.7
自定义标签库
•
JSTL
自带的标签功能非常强大,但是仅仅这些标签并不能完全满足实际开发中的需要,在这个章节将介绍如何定制开发自己的标签库。开发自定义标签,首先需要开发标签所对应的功能类,其次要编写标签的描述文件
tld
,并把这个文件放在项目的
WEB-INFO/
目录下,然后才可以在
JSP
页面上调用自定义的标签。(具体内容请参照书。)
9.8
小结
•
本章介绍了
JSTL
的基本知识,包括
JSTL
核心标签库、数据库操作标签库、
XML
文档处理标签库等,而且还介绍了自定义标签的开发过程,读者在实际的开发过程中可以参考本章的示例程序,在学习本章知识的基础上熟练运用
JSTL
提高开发速度和质量,并在自己的开发中尝试自定义标签库来简化开发的代码量。
上一篇:Ant如何使用
下一篇:XML技术基础知识
相关文章
AjaxPro使用说明
清华IT师生共同欢庆教师节
是什么造成百万大学生找不到工作
清华IT学生会选举
啥样简历更能获得面试机会
清华IT学习认证中心软件728班开学典礼
使用IPSec保护iSCSI
国家推出"国家信息技术紧缺人才培养工程"
打印
收藏
关闭