今天,经过一番折腾,终于在JBOSS中用上了JSTL,心里感觉蛮有点收获的,花点时间写下一点笔记
首先在APACHE网站上可以下载JSTL(我下载的是
jakarta-taglibs-standard-1.1.2.zip),可能后面的版本会有点变化
解压ZIP文件,将里面的standard.jar和jstl.jar文件放在工程中的/WEB-INF/lib目录中
在/WEB-INF目录下建一个新的文件夹tld
将zip文件里的*.tld文件解压放在/WEB-INF/tld目录中
修改/WEB-INF/web.xml文件加入如下内容
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
<taglib-location>/WEB-INF/tld/fmt-1_0-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
<taglib-location>/WEB-INF/tld/c-1_0-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/tld/sql.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
<taglib-location>/WEB-INF/tld/sql-1_0-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
<taglib-location>/WEB-INF/tld/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
<taglib-location>/WEB-INF/tld/x-1_0-rt.tld</taglib-location>
</taglib>
其实可以根据使用的情况,仅将需要的tld加入到工程
布置好了.jar文件和.tld文件,以及修改了web.xml文件后,就可以在JSP页面里试试JSTL标签的魅力了
stulist.jsp
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
2
3 <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
4 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
5
6
7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
8 <html>
9 <head>
10 <title>page</title>
11 </head>
12
13 <sql:query var="rs" dataSource="ks2">
14 SELECT * FROM STU
15 </sql:query>
16
17 <body>
18 <h3>学生情况<br>
19 <TABLE align="center" border="1" width="95%">
20 <tr><td>序号</td><td>学号</td><td>姓名</td></tr>
21
22 <c:forEach var="row" items="${rs.rows}" varStatus="stat">
23 <tr><td>${stat.count}</td><td>${row.stunum}</td><td>${row.stuname}</td></tr>
24 </c:forEach>
25
26 </TABLE>
27 </body>
28 </html>
这样的页面似乎简洁多了,看着就一个字"清爽":)
在这里还得补充一下,我是在JBOSS下做的,在<sql:query>标签里指定dataSource里碰到点问题,我的数据源是在jboss4\server\default\deploy\mysql-ds.xml里配置的,配置的数据源名字是ks,可在运行这个页面时总是提示找不到数据源,查了一些资料发现问题所在,要让JSTL能夠顺利使用JNDI的DataSource,还得在web.xml和jboss-web.xml里做修改,好让应用程序可以找到JNDI的服务,在/WEB-INF/下新建一文件jboss-web.xml,其内容如下
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<resource-ref>
<res-ref-name>ks2</res-ref-name>
<jndi-name>java:ks</jndi-name>
</resource-ref>
</jboss-web>
然后在web.xml里加如下面的内容
<resource-ref>
<res-ref-name>ks2</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
这样处理之后,在JBOSS中使用JSTL数据源的问题就解决了
刷新页面,希望看到的结果出来了,OK!
今天终于体验一了下JSTL,真是酷哇,页面比以前写的简洁多了,看来得找个时间好好学习一下这个东东了