我按照此链接中的指南安装JSTL,但是在尝试启动JSP页面时遇到以下错误:
java.lang.NoClassDefFoundError:javax / servlet / jsp / tagext / TagLibraryValidator
taglib声明为:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
我/WEB-INF/lib在Tomcat Web应用程序下安装了JSTL 1.1,并试图在我的项目中执行相同的操作,但是没有用。我也尝试了JSTL的1.2版,并且仍然看到相同的消息。这是怎么引起的,我该如何解决?
/WEB-INF/lib
所述javax.servlet.jsp.tagext.TagLibraryValidator类在JSP 2.0引入。因此,此错误可能具有以下可能的原因:
您没有运行与JSP 2.0兼容的serlvetcontainer。例如,Tomcat 4.x或5.0。您至少需要Tomcat 5.5或更高版本,6.0甚至更高版本,7.0。只是最新版本。
您已经将/WEB-INF/lib任意下载的jsp-api.jar或j2ee.jar文件或包含JSP API的文件弄乱了,它们来自完全不同的servlet容器make / version,而后者实际上不符合JSP 2.0。摆脱那些图书馆。您不需要它们。如果您这样做是为了解决编译错误,那么您做错了方法。它们应该以编译时类路径结尾,而不是运行时类路径结尾。
jsp-api.jar
j2ee.jar