伴随着JAVA EE5的出现,JSP技术已经升级为2.1版本,其中一个比较重要的特性就是JSTL1.2,允许你在JSP页面中使用标签来简化开发。本文简单介绍一下在Tomcat+Eclipse环境下如何使用JSTL技术。
首先需要明确的一个概念是:JSP2.1虽然是JAVA EE5的一部分,但他只是一个规范,具体的实现还要靠各个厂商来完成。比如我们的Tomcat5.5,他就没有实现JSP2.1规范,他只实现了JSP2.0规范。因此,你在Tomcat5.5中就无法使用JSP2.1中的JSTL1.2技术,只能使用稍微早一点的版本,也就是JSP2.0中的JSTL1.1。
另外,也是比较容易让人迷茫的地方,那就是Tomcat虽然号称支持JSP2.0规范,但是他默认情况下不支持JSTL1.1,你必须额外下载JSTL1.1的具体实现,并进行相应的配置,才能在程序中使用JSTL1.1技术。下面我们就来看一看都要做哪些额外的工作:
1、 去Jakarta的网站下载一份JSTL1.1的具体实现。网址如下:
2、 将该压缩包解压缩后,能找到2个Jar文件,分别是jstl.jar和standard.jar,把这两个文件拷贝到Tomcat的Common/lib目录下。在我的机器上,具体路径为:C:/Program Files/Apache Software Foundation/Tomcat 5.5/common/lib
3、 在Eclipse中新建一个“Dynamic Web Project”,取名为JSTLTest,把前面解压缩的到的若干tld文件拷贝到此项目的WEB-INF目录下,再为他的Web.xml文件增加一些<taglib>节点
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fn</taglib-uri>
<taglib-location>/WEB-INF/fn.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/perTag</taglib-uri>
<taglib-location>/WEB-INF/permittedTaglibs.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/sql.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/script</taglib-uri>
<taglib-location>/WEB-INF/scriptfree.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
<taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib>
至此,准备工作已经结束,写一个页面体验一下吧:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<body>
<c:if test="${pageContext.request.method=='POST'}">
<c:if test="${param.guess=='java'}">You guessed it!
<br />
<br />
</c:if>
<c:if test="${param.guess!='java'}">
You are wrong
<br />
<br />
</c:if>
</c:if>
<form method="post">Guess what computer language
I am thinking of?
<input type="text" name="guess" />
<input type="submit" value="Try!" />
<br />
</form>
</body>
</html>