在tomcat10.0.5环境下,用jsp-jstl 实现前端WEB页面与后端数据库(MySQL8.0.23)交互的时候,出现如下错误信息:
jakarta.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator
查找原因:
原来是在pom.xml文件中导入了javax.servlet.jsp.jstl 1.2 包,如下所示:
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
而tomcat10以后的版本不支持javax包,因此导入的jstl包不起作用。
问题解决:
后来我从Maven:mvnrepository.com 找到了jakarta.servlet.jsp.jstl 2.0包,如下所示:
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jakarta.servlet.jsp.jstl</artifactId>
<version>2.0.0</version>
</dependency>
把它导入后,问题就解决了。
转自:解决 java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator 错误问题 - 知乎