问题描述:
在使用JSP的jstl时,引入jstl使用 c:forEach 标签时出现了如下报错:
截图:
原因分析:
JavaEE被Oracle捐献给Apache了。目前最高版本是 JavaEE8。
- Apache把JavaEE换名了,以后不叫JavaEE了,以后叫做 jakarta EE。
- 以后没有JavaEE了。以后都叫做Jakarta EE。
- JavaEE8版本升级之后叫做JakartaEE9
- JavaEE8的时候对应的Servlet类名是:javax.servlet.Servlet
- JakartaEE9的时候对应的Servlet类名是:jakarta.servlet.Servlet (包名都换了)
- 如果你之前的项目还是在使用javax.servlet.Servlet,那么你的项目无法直接部署到Tomcat10及以上版本。你只能部署到Tomcat9及以下版本。在Tomcat9以及Tomcat9之前的版本中还是能够识别javax.servlet这个包。
查到挺多博主使用如下这两个jar包解决了问题
jakarta.servlet.jsp.jstl-api-2.0.0.jar
jakarta.servlet.jsp.jstl-2.0.0.jar
因为我的是maven项目,发现maven阿里云仓库没有这个jar包:jakarta.servlet.jsp.jstl-api-2.0.0.jar
又查了别的资料,使用了如下两个jar包,解决了问题。
解决方法:
<dependency>
<groupId>jakarta.servlet.jsp.jstl</groupId>
<artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jakarta.servlet.jsp.jstl</artifactId>
<version>3.0.1</version>
</dependency>
参考文档:java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator 问题解决 - 愚生浅末 - 博客园




407

被折叠的 条评论
为什么被折叠?



