The absolute uri: [http://java.sun.com/jsp/jstl/core] cannot be resolved in either web.xml or the ja

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

  1. 項目中沒有加載jstl.jar
  2. 加載了版本低於1.0的jstl.jar卻沒有加載對應的standard.jar包(1.1以上的版本jstl中就包含standard包了)

  <2>jar包引用格式的問題

  1. 項目中加載了1.0如下的jstl.jar在jsp界面引用的格式爲:
<%@ 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了。

相關文章
相關標籤/搜索