当我使用 JSTL 时出现错误。请帮助我。
我在 tomcat 7 中使用 jstl-impl-1.2.jar 和 jstl-api-1.2.jar 并取出 standard.jsp 和 jstl.jsp 但仍然遇到此错误。
错误代码
java.lang.AbstractMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
javax.servlet.jsp.jstl.core.LoopTagSupport.unExposeVariables(LoopTagSupport.java:624)
Web.xml
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
Your /WEB-INF/lib
,或者更糟的是,你的JRE/lib
or JRE/lib/ext
,被 servletcontainer 特定的库污染,例如jsp-api.jar
不同且旧版本的 servletcontainer make/version。你需要在你的网络应用程序中删除它们/WEB-INF/lib
。这些库应该已经由 servletcontainer 本身提供,在您的例子中是 Tomcat。
在您的特定示例中,javax.servlet.jsp.PageContext.getELContext() http://docs.oracle.com/javaee/6/api/javax/servlet/jsp/JspContext.html#getELContext%28%29方法仅从 JSP 2.1 开始存在,由 Tomcat 的内部类请求,但在 JSP API 中找不到该方法,因为您的 web 应用程序中有一个较旧版本的方法(显然是 JSP 2.0 或更早版本),该方法在类加载中具有优先权超过 Tomcat 自己的。
换句话说,您的 Tomcat 7 一直像 tomcat 5.5 或更早版本一样运行,直到您将 JSTL 升级到 Tomcat 6 兼容版本。
也可以看看:
- 如何在 Eclipse 项目中导入 javax.servlet API? https://stackoverflow.com/questions/4076601/how-do-i-import-the-javax-servlet-api-in-my-eclipse-project/4076706#4076706
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)