ITEEDU

JSP/Servlet: 简介 JSTL

先前您已经学会各种自订标签的方法,对于一些常用的标签,您不用自行开发,网络上已经有一些前人开发过的自订标签,您可以以免费或购买的方式取得它们, JSTL即是一个通用的标准函式库,JSTL全名JavaServer Page Standard Tag Library,是一个标准化的标签函式库,由Apache的Jakarta计划实作,它集成了一些简单且常用的卷标,诸如流程控制、输出输入、SQL、 XML处理等等,您可以在下面的网址取得最新的发行版面:

http://www.apache.org/dist/jakarta/taglibs/standard/

在撰写这篇文章的同时,JSTL最新的版面是1.1,必须有支持Servlet 2.4/JSP 2.0的Container才可以运用,您可以取得上列网址下的jakarta-taglibs-standard-current.zip档案,即为 JSTL最新的发行版本,取回后解开档案,将lib目录下的jstl.jar与standard.jar复制至您的Web应用程序下的WEB- INF/lib/下,并将tld目录下的tld档案复制至您的Web应用程序tld档案的放置处,例如WEB-INF/tlds/下,接下来您就可以在 JSP网页中使用JSTL。在lib目录下的old-dependencies则是旧版本的JSTL 1.0。

在解开的zip档案中,还有standard-doc.war与standard-examples.war两个档案,您可以将之复制至 Tomcat的webapps目录,启动Tomcat之后,就会自动解开这两个war档案,前者是JSTL的文件说明档案,后者则是JSTL的一些范例文件 案,我们并不打算详细介绍JSTL的使用,对于一些标签的使用,您可以查看文件或范例档案来查看使用方式。

JSTL主要分作五个大类,以下来自JSTL文件说明:

  • 核心标签库
    • URI:http://java.sun.com/jsp/jstl/core
    • 前置:c
    • 范例:<c:tagname ...>
  • XML处理标签库
    • URI:http://java.sun.com/jsp/jstl/xml
    • 前置:x
    • 范例:<x:tagname ...>
  • I18N格式标签库
    • URI:http://java.sun.com/jsp/jstl/fmt
    • 前置:fmt
    • 范例:<fmt:tagname ...>
  • 数据库存取(SQL)标签库
    • URI:http://java.sun.com/jsp/jstl/sql
    • 前置:sql
    • 范例:<sql:tagname ...>
  • 函式标签库
    • URI:http://java.sun.com/jsp/jstl/functions
    • 前置:fn
    • 范例:fn:functionName(...)

看一个简单的例子,了解用JSTL撰写出来的网页是什么样子:

jstlDemo.jsp
<%@taglib prefix="c" 
uri="http://java.sun.com/jsp/jstl/core"%> 
<html> 
<body> 
<c:if test="${param.password == '1234'}"> 
${param.user} 请领取您的<b>密码礼物</b>! 
</c:if> 
</body> 
</html> 

这是一个简单的密码认证网页,test属性为true时就会显示卷标间的文字,也就是只要传送request时包括 password=1234,就可以看到<c:if>之间的文字内容,您可以看到JSTL搭配EL使用,在整个网页中看不到 Scriptlet,没有Java语法,熟悉卷标使用的网页设计人员学习JSTL会比学习Java语言来得容易,对于实现逻辑与视图分离也比较容易。