这是我在学习 JSTL 时产生的错误。

没有使用 Maven 。 是手动引入 JSTL 包(jstl.jar 和 standard.jar)。在请求转发到 .jsp 界面,再没有使用 JSTL 语句前是通的,使用 JSTL 后就会报错。

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

报错图如下

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

在网上寻寻觅觅,找到了几个情况。先说解决了我的报错的。


1.解决方案1(本人有效)

最先我是在 WEB-INF 同级目录下创建的 lib 目录。将 jstl.jar 和standar.jar 放入这个目录(web/WEB-INF/lib/) 中导包,会报错。

在 WEB-INF 下创建 lib2 目录,在这个目录(web/WEB-INF/lib2/)下到导包不会报错。

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

2.解决方案2

这个是对我无效的

来源:https://blog.csdn.net/weixin_30119925/article/details/113462701

修改 Tomcat 安装目录下 conf\catalina.properties 文件

  1. 找到 tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\

无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]
  1. tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\ 注释掉

添加 tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar,\

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

3.解决方法3

也是对我无用的

将 standar.jar 解压 META-INF 目录下的三个文件复制到项目 WEB-INF 下

c.tld

c-1_0.tld

c-1_0-rt.tld

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

4.其他

  1. 还有说是 Tomcat 版本太高的,我的是 9 。本来想着再解决不了就降版本了,幸好解决了

2. 再调试时,最好注意一下 out 目录是不是有你导入的包,且没错试错都可以重启项目。