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

今天用eclipse在maven项目里测试jsp页面时报了如下错误:
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
在这里插入图片描述
我测试了一下,不加<c:forEach>标签,简单的跳转到jsp页面没有问题,加了<c:forEach>标签就报这个错误
找了好久才找到原因,终于实测解决了。

出错原因

这是因为在<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>里,
taglib指定的uri找不到导致的

解决问题步骤

1、首先我们要确认下自己的uri=""引入是否有错误

JSTL 1.0 声明:
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
JSTL 1.1 之后声明:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

我的uri=""引入并没有问题,那么继续解决问题

2、确保项目中有jstl.jar和标准实现包,注意版本一定要匹配

我这里用的是jstl1.2.jartaglibs-standard-impl-1.2.5.jar,这两个是匹配的版本,如果你没有,可以在maven里配置这两个jar包的坐标

<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>jstl</artifactId>
	<version>1.2</version>
</dependency>
<!-- taglibs-standard-impl-1.2.5 -->
<dependency>
	<groupId>org.apache.taglibs</groupId>
	<artifactId>taglibs-standard-impl</artifactId>
	<version>1.2.5</version>
</dependency>

注入jar包后,我们就可以在maven的jar包里找到taglibs-standard-impl-1.2.5.jar所在的路径
在这里插入图片描述

在这里插入图片描述
找到这个jar包后,可以把jar包打开(我是右击文件,选择用360压缩打开)
打开后,再点开META-INF文件夹,里面就是我们要找的TLD文件了

在这里插入图片描述
我们把所有的tld文件都复制出来
(其实如果只用c开头的标签,只需要复制c开头的tld文件,不过还是都复制吧,以后要用到别的功能要用到)

复制出来的tld文件我们粘贴到 项目的WEB-INF下面,我是在WEB-INF下面新建了个jstl-tld文件夹,然后粘贴到这个文件夹下面的,这2者没什么区别
在这里插入图片描述
好了,接下来重启服务器运行即可,保险起见可以project–clean一下再启动,问题解决!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值