本文在介绍JSTL的安装、功能和使用方法的基础上,以某系统的图书管理模块为例,详细说明如何运用JSTL进行快速Java Web开发。
关键词 JSTL,JST,图书管理
JSTL是Apache的一个开源项目,它是为解决传统JSP文件在数据表示、逻辑控制和数据库访问等方面的不足而提出的一个有效的解决方案。编写过JSP应用程序的程序员都知道,传统的JSP文件是采用HTML标记中嵌入Java Scriptlet的方式来实现的,使得JSP文件中包含大量的Java代码,这一方面造成页面内容的臃肿、难以维护,另一方面使得JSP程序员和美工之间的交流十分困难。JSP文件的这些缺陷催生了对解决类似通用问题的独立标记库的需求,在Java Community Process(JSR 52)的赞助下创建了JSTL(JavaServer Pages Standard Tag Library,JSP)标准标记库,为解决这些通用功能提供一个单一的标准解决方案。
一、JSTL的下载和安装
要使用JSTL,首先必须到apache的官方网站下载JSTL的安装包(下载地址:http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi),JSTL目前的最高版本是JSTL1.1版,笔者建议下载经过编译的二进制(Binary)包文件,下载后解压,得到图1所示的目录结构:
图1 jakarta-taglibs-standard-1.1.2目录结构
doc目录下是使用说明文档,javadoc目录是API的说明文档,lib目录下有jstl.jar和standard.jar两个类库,它们处理标记库的解析,tld目录下所有以.tld后缀的文件就是JSTL的标志库文件。
安装JSTL过程比较简单,先将解压后lib目录下的jstl.jar和standard.jar两个类库拷贝到应用程序的/WEB-INF/lib目录下就可以了。从Servlet 2.3 之后,标签库的绝对URI 在该库的标签库描述符 (TLD) 文件中指定。如果使用的是符合JSP 1.2/Servlet 2.3 的容器,比如Tomcat 4.x或者更高,可以在JSP页面的taglib指令中使用绝对路径。因此只要在需要使用JSTL的JSP文件的开始加入
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
就开始使用JSTL。
二、JSTL主要功能介绍
JSTL是一个在不断开发和完善的开放源代码的JSP标签库,它支持多种标签,在开发中常用的有以下四种标签,如下表所示:
JSTL中常用的四种标签
标签 URL 默认前缀 主要功能
Core标签 http://java.sun.com/jstl/core c 支持JSP常用的基本操作
Database access (SQL)标签 http://java.sun.com/jstl/sql sql 支持JSP对数据库的操作
I18N capable formatting标签 http://java.sun.com/jstl/fmt fmt 支持对JSP页面的国际化操作
XML processing标签 http://java.sun.com/jstl/xml x 支持JSP对XML文档的处理
JSTL标签库功能十分强大,本文只是介绍一些最常用的标签的使用方法。
1.获取请求参数
在JSP中,获取表单递交的请求参数是通过request.getparameter(“attribuatename”)语句来处理的,这在表单提交的数据域比较多的时候显得非常烦琐,而JSTL提供一种非常简洁的方式:
${param.name}和${paramValues.name}
需要说明的是, JSTL采用一种表达语言(Expression Language,简称EL),EL表达式都被${}括起来,param和paramvalues分别是在EL中定义的两个内置对象。它们的功能等同于JSP中的request.getParameter(String name)和request.getParameterValues(String name),分别用来获取单个和数组类型的请求参数。