關於JSP中org.apache.jasper.JasperException:
This absolute uri http://java.sun.com/jsp/jstl/core) cannot be resolved in either web.xml or the jar files deployed with this application
照著《精通JSP--Web開發技術與典型應用》敲了一段JSTL的代碼。沒想到報錯了。為這個問題搞了一下午,坐得屁股疼……
我的開發環境是Eclipse 3.2.0、Myeclipse 5.0、Tomcat 5.0.28(它用的是JRE1.4)和JDK1.5
從網上搜了一下,相同的說法是:一個就是JSTL的版本問題(1.0與1.1),是否不一致。還有就是檢查虛擬目錄下WEB-INF目錄下的lib檔案夾(如果同有lib檔案夾,後動建立一個)中是否有jstl.jar和standard.jar兩個jar包,如果沒有則把它們複製到lib下面。
都試了,不過報錯依舊……後來又找了一下加上自己的亂搞,按照上面的改過之後,大體有兩種解決方案:
第一種就是在Eclipse的工程中匯入JSTL1.1後,下載JSTL1.1 http://jakarta.apache.org/taglibs/index.html
然後解壓,把*.jar和*.tld放到/WEB-INF/lib目錄下。也就是將所有的jakarta-taglibs-standard-current.zip(JSTL的類庫)中的.jar和.tlb放到WEB-INF目錄下的lib檔案夾中,JSP檔案中匯入<%@ taglib prefix="c" uri="/WEB-INF/lib/c.tld" %>,經實驗是可以的。
第二種是修改web.xml,加上下面的語句:
<jsp-config>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/xml</taglib-uri>
<taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/sql.tld</taglib-location>
</taglib>
</jsp-config>
JSP中匯入<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>。應該就可以了……
推薦第二種^_^!