实用解决当无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]

实用解决当无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]

错误提示:

无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]

在这里插入图片描述
在这里插入图片描述

试过网上很多方案都没有用,比如导入jstl包、standard包,但都没有用。
错误显示无法在web.xml中解析,在导包无果的情况下,我在想是不是tomcat版本或者jdk版本的问题。经过查看tomcat的jar包以及jdk,得出以下解决办法和原因。

1.servlet和jsp对应版本不支持EL表达式或者没有开启EL表达式

解决办法:EL表达式是从jsp2.0和servlet2.4才开始支持的。servlet2.3及以前版本都不支持。

在servlet2.3版本的页面中可以添加 <%@ page isELIgnored=“false” %> 来开启EL表达式并且能使用但会报黄线提示,而且servlet2.3中c标签和EL表达式不能结合使用,必须使用c标签的扩展库 <%@ taglib prefix=“c” uri=“http://java.sun.com/jstl/core_rt” %> 才可以和c标签结合使用

servlet2.4版本中默认已开启EL表达式,不用添加<%@ page isELIgnored=“false” %>。

servlet2.5及以上版本默认没有开启EL表达式,使用el表达式时需开启。

2.缺包。

解决办法:在lib或pom.xml导入jstl和standard包。
这个方法是网上最普遍的,应该搜一下就可以解决。

3.以上两种情况都不是的(我就是这种情况),原因可能是jstl.jar包冲突或者jar包缺陷。

请检查项目lib目录下的jstl.jar包和服务器lib目录下jar包是否冲突。
jar包缺陷的话(可能性更大),我的jdk版本是1.8,tomcat版本是8.5,在导入jstl1.2jar,出现报错。
然后引入jstl1.0jar包中的c.tld、c-1_0.tld、c-1_0-rt.tld文件在WEB-INF文件夹中。(我试过当jstl1.0版本的也成功过)

在这里插入图片描述

我的是用maven构建的项目,在导入这三个文件后,重新部署服务器就成功了!
其实jstl.jar包中也有着三个文件,但当我打开一探究竟时,发现几乎完全一样,只有协议不一样,所以我觉得jar包缺陷和jar包冲突可能性更大。
上图:

在这里插入图片描述
在这里插入图片描述

希望能帮到读者,因为这个错误也困扰了我好久。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值