Spring MVC项目报错:http://java.sun.com/jsp/jstl/core无法解析
解决Spring MVC中JSTL标签库URI无法解析的问题
嘿,这个问题我之前也碰到过!错误提示The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved本质是你的项目里缺少JSTL的实现包,或者依赖配置存在冲突。结合你的环境和配置,我帮你梳理下解决方案:
问题根源分析
从你的pom.xml里能看到两个明显的问题:
- 重复引入了Servlet API依赖:同时包含
javax.servlet-api(3.1.0)和servlet-api(2.3),版本冲突会导致依赖加载异常。 - Servlet API依赖没有设置
providedscope:Tomcat 8本身已经自带了Servlet API,不需要把它打包到WAR包中,否则会和容器自带的API冲突。
具体修复步骤
1. 清理并修正Servlet API依赖
打开你的pom.xml,删除重复的servlet-api(2.3)依赖,把保留的javax.servlet-api设置为provided scope,修改后的依赖如下:
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>
2. 确认JSTL依赖配置
你的JSTL依赖版本(1.2)是适配Tomcat 8的,这个没问题,但要确保它存在于dependencies节点中:
<dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
3. 验证JSP中的标签库指令
确保你的JSP页面里的JSTL标签库引用是正确的,和错误日志中的URI一致:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
4. 重新构建并部署项目
执行Maven命令重新构建项目,确保依赖被正确打包到WAR包中:
mvn clean package
然后检查WAR包的WEB-INF/lib目录下是否存在jstl-1.2.jar,如果存在,重新部署到Tomcat 8即可。
内容的提问来源于stack exchange,提问作者jackLee
相关产品推荐
相关产品推荐

