1.問題描述:java
在web的jsp文件中想用jstl這個標準庫,在運行的時候很天然的引用jar包以下:web
<dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version>
</dependency>
在jsp界面引語句以下:api
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
表面上看沒毛病,可是運行的時候,頁面直接500了,報錯爲The absolute uri: [http://java.sun.com/jsp/jstl/core] cannot be resolved in either web.xml or the jar files deployed with this application] with root cause大體意思爲這個絕對路徑[http://java.sun.com/jsp/jstl/core]既沒有在web.xml配置有沒有在jar包文件下部署。tomcat
總而言之就是----項目找不到jstl這個庫了。服務器
2.解決方法:app
通過瀏覽網上的分析,個人問題是,maven工程發佈到tomcat服務器上的過程當中,工程並無將本地已經配置好的jstl1.2的jar包jia部署到tomcat的lib裏,因此在工程運行後,點擊引用了jstl庫的頁面顯示500並在eclipse中報錯。我將本地倉庫中jstl.jar複製到tomcat的lib中從新發布一下項目,就恢復正常了。eclipse
3.關於問題的狀況總結jsp
關於這個問題,我看到的的狀況有不少種,你們不妨對照一下:maven
<1>jar包引用問題this
<2>jar包引用格式的問題
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
2.jstl.1.1版本以及1.2版本都換了一種新的路徑:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<3>tomcat沒有部署相關的jar包
將本地倉庫中jstl.jar複製到tomcat的lib中從新發布一下項目,就OK了。