大可制作:QQ群:31564239(asp|jsp|php|mysql)

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语言来得容易,对于实现逻辑与视图分离也比较容易。