錯誤提示是:
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
web項目出現如上問題,據查是版本問題:
JSTL 1.0 的聲明是:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core " %>
JSTL1.1以后 的聲明是:
<%@ taglib prefix="c" uri=http://java.sun.com/jsp/jstl/core %>
項目中,已經是 jstl 1.2 版本了,頁面中也全部是用<%@ taglib prefix="c" uri=http://java.sun.com/jsp/jstl/core %>這種方式。javaee5之后就只有 jstl.jar 這一個jar包了,沒有standard.jar包,tld文件也打包到jstl.jar里面去了,網上有一種說法是在web.xml文件里配置jsp-config的解決方式是沒有用的。
最終查到問題的解決方法是: jstl.jar 包在ide項目中有,但在tomcat發布的應用WEB-INF/lib下沒有,這是工具發布項目的問題,復制一個jstl.jar包到WEB-INF/lib下問題就解決了。
具體的操作方法是:找到ide中的jstl.jar包(一般在MyEclipse9.0安裝目錄\Common\plugins \com.genuitec.eclipse.j2eedt.core_9.0.0.me201103181703\data\libraryset \EE_5下),然后復制到WEB-INF/lib下,至此問題解決。
#################################
ide中jstl.jar包可以通過 右鍵項目/built path/configure built path /libraries 下的 java EE ** 中找到,如下圖: