我按照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版本,但仍然是相同的消息 . 这是怎么造成的,我该如何解决?
1 回答
javax.servlet.jsp.tagext.TagLibraryValidator类是在JSP 2.0中引入的 . 因此,此错误可能具有以下可能原因:
您没有运行与JSP 2.0兼容的serlvetcontainer . 例如,Tomcat 4.x或5.0 . 您至少需要Tomcat 5.5或更高版本,6.0或甚至更高版本7.0 . 只是最新版本 .
您使用任意下载的
jsp-api.jar
或j2ee.jar
文件或包含JSP API的任何内容混乱了/WEB-INF/lib
,这些源自完全不同的servletcontainer make / version,而这实际上并不符合JSP 2.0 . 摆脱那些库 . 你不需要它们 . 如果你这样做是为了解决编译错误,那么你做错了 . 它们应该在编译时类路径中结束,而不是在运行时类路径中 . 另见How do I import the javax.servlet API in my Eclipse project?