很久沒有寫自己的blog了,因為這一段時間比較忙,抱歉了!
    上個星期遇到了一個問題,我本來想在自己的web系統中使用jsp的標準標籤,我在自己的jsp檔案中新增了<%@ taglib prefix=”c” uri=”http://java.sun.com/jstl/core”%>,然後我再使用c標籤的時候,我的頁面卻總是報這樣的錯誤
According to TLD or attribute directive in tag file, attribute items does not accept any expressions
大體上是說根據我的tag檔案,items屬性中不能接受任何的表示式語言,以前從來沒有遇到過這樣的事情,用到jsp標準標籤的時候幾乎都是拷貝過來配置一下就可以使用了。現在只要使用迭代標籤就會報錯!
    
     我上網搜尋了一下發現很多人都遇到了同樣的問題,大體的原因是因為版本不相容的問題。但是試驗了幾次都沒有成功。
     具體的解決方法:
     1:從apache的網站上down下了新的standard.jar、jstl.jar和c.tld。我發現新的檔案的確比我原來的檔案要大,而且c.tld檔案的內容已經不一樣了。更新了jar檔案和tld檔案。
     2:我的web.xml檔案的配置是
           
<web-app xmlns=”[url]http://java.sun.com/xml/ns/j2ee[/url]”
xmlns:xsi=”[url]http://www.w3.org/2001/XMLSchema-instance[/url]” xsi:schemaLocation=”[url]http://java.sun.com/xml/ns/j2ee[/url] [url]http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd[/url]”
version=”2.4″>
 
           web.xml檔案中也不需要配置tag標籤,也就是c.tld檔案的位置,只需要拷貝到WEB-INF目錄下面即可,這應該得益於jsp2.0的規範了,它可以自動尋找到。
    3:把<%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c”%>
          改為<%@ taglib uri=”[url]http://java.sun.com/jstl/core_rt[/url]” prefix=”c” %>
 
    重新啟動web程式,測試通過了。果然就是版本不相容的問題了。呵呵!