今天,經過一番折騰,終于在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,真是酷哇,頁面比以前寫的簡潔多了,看來得找個時間好好學習一下這個東東了