天天看點

關于jsp中使用jstl

    很久沒有寫自己的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程式,測試通過了。果然就是版本不相容的問題了。呵呵!    

轉載于:https://blog.51cto.com/sunny/39929