我按照this link中的指南安装了JSTL但是当我尝试启动JSP页面时出现以下错误:
java.lang.NoClassDefFoundError:javax / servlet / jsp / tagext / TagLibraryValidator
taglib声明是:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
我在Tomcat webapps中的/WEB-INF/lib
下安装了JSTL 1.1,并尝试在我的项目中执行相同操作,但它没有工作。我也尝试过JSTL的1.2版本,但仍然是相同的消息。这是怎么造成的,我该如何解决?
答案 0 :(得分:3)
JSP 2.0中引入了javax.servlet.jsp.tagext.TagLibraryValidator类。因此,此错误可能有以下可能原因:
您没有运行与JSP 2.0兼容的serlvetcontainer。例如,Tomcat 4.x或5.0。您至少需要Tomcat 5.5或更高版本,6.0或甚至更高版本7.0。只是最新版本。
您使用任意下载的/WEB-INF/lib
或jsp-api.jar
文件或包含JSP API的任何内容混淆了j2ee.jar
,这些文件来自完全不同的servletcontainer make / version实际上并不符合JSP 2.0。摆脱那些库。你不需要它们。如果你这样做是为了解决编译错误,那么你做错了。它们应该在编译时类路径中结束,而不是在运行时类路径中。另请参阅How do I import the javax.servlet API in my Eclipse project?
答案 1 :(得分:1)
我遇到了类似的问题,我使用的是 Tomcat 10。我在使用 Apache NetBeans 12.3 IDE 时遇到了这个错误。
我添加了以下库:
我的代码现在运行良好。 link to see where I added them
答案 2 :(得分:0)
我遇到了同样的问题。使用WildFly 服务器最新版。这解决了我同样的问题。