我幾乎已經閱讀了關於SO的這個問題的所有答案,並嘗試了十多種不同的「解決方案」,但我無法讓JSTL在Spring啓動Web應用程序中使用Tomcat 8.0中的servlet 3.1。我不斷收到此錯誤:無法使用Servlet 3.1與JSTL 1.2一起獲取Tomcat 8.0
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.
我使用Maven構建項目,但也有手動,希望複製JAR文件以及這將有助於但很可惜,它不是!我希望我只是忽略了一些愚蠢的東西。有人能告訴我我做錯了什麼嗎?
事情我已經嘗試了(對於所有這些,這是一個簡單的index.jsp文件所包含的行 -
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
添加以下的依賴,以我的pom.xml(XML字符刪除格式化更好)
<dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
這使JSTL-1.2.jar在我的WEB-INF/lib目錄下,我已經證實了它的存在,當我部署到Tomcat - 這不起作用
刪除了上述的依賴並增加每這裏的建議(http://www.murraywilliams.com/2011/11/running-jstl-1-2-on-tomcat-7-using-maven/)
這些相關<dependency> <groupId>org.glassfish.web</groupId> <artifactId>jstl-impl</artifactId> <version>1.2</version> <exclusions> <exclusion> <artifactId>servlet-api</artifactId> <groupId>javax.servlet</groupId> </exclusion> <exclusion> <artifactId>jsp-api</artifactId> <groupId>javax.servlet.jsp</groupId> </exclusion> </exclusions> </dependency>
這使得兩個附加的JAR文件在我的WEB-INF/lib目錄下,A JSTL-API-1.2.jar和jstl-impl-1.2.jar,我已經確認他們在那裏時,我部署到雄貓 - 這是行不通的
我也試着改變範圍'提供'爲每個這些依賴項,同時放置Tomcat的lib目錄中的相應JAR以及重新啓動的Tomcat仍然不起作用。
這裏是我的web.xml頭
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
不管怎麼說,任何幫助是非常感謝!
您是否暗示它在您不使用Spring Boot時正常工作? – BalusC
不,但我知道Spring Boot在幕後做了很多東西,我覺得像提到它的使用可能是相關的。雖然我在我的項目上運行了一個依賴關係樹,但沒有看到其他JAR牽扯到衝突的JSTL JAR。 –
我不想發佈這個問題的答案,因爲它沒有真正回答實際問題,但我決定使用Thymeleaf來處理視圖而不是JSP。只有一個小的學習曲線,它與Spring 4(和Spring Boot)很好地結合在一起。我會鼓勵其他人進行轉換! –