这是我在学习 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]
报错图如下
在网上寻寻觅觅,找到了几个情况。先说解决了我的报错的。
1.解决方案1(本人有效)
最先我是在 WEB-INF 同级目录下创建的 lib 目录。将 jstl.jar 和standar.jar 放入这个目录(web/WEB-INF/lib/) 中导包,会报错。
在 WEB-INF 下创建 lib2 目录,在这个目录(web/WEB-INF/lib2/)下到导包不会报错。
2.解决方案2
这个是对我无效的
来源:https://blog.csdn.net/weixin_30119925/article/details/113462701
修改 Tomcat 安装目录下 conf\catalina.properties 文件
-
找到 tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\
-
将 tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\ 注释掉
添加 tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar,\
3.解决方法3
也是对我无用的
将 standar.jar 解压 META-INF 目录下的三个文件复制到项目 WEB-INF 下
c.tld
c-1_0.tld
c-1_0-rt.tld
4.其他
-
还有说是 Tomcat 版本太高的,我的是 9 。本来想着再解决不了就降版本了,幸好解决了
2. 再调试时,最好注意一下 out 目录是不是有你导入的包,且没错试错都可以重启项目。