解决tomcat10.1.8+servlet5.0使用jsp时报
java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator
的错误。
把之前的依赖删掉,tomcat10版本不同于之前的版本,之前的依赖可能是用不了了
1、导入依赖,
① 旧版本servlet依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
换成
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
<scope>provided</scope>
</dependency>
② 旧版本jsp依赖
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
换成
<dependency>
<groupId>jakarta.servlet.jsp</groupId>
<artifactId>jakarta.servlet.jsp-api</artifactId>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>
③ 旧版本的jstl依赖
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
换成
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jakarta.servlet.jsp.jstl</artifactId>
<version>2.0.0</version>
</dependency>
④ mysql依赖
这个我用的是这个
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
2、修改JSTL标签库
将.jsp文件中的
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
换成
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
完成上面的步骤应该差不多了,成了点个赞哦。