java.lang.NoSuchFieldError: deferredExpression,改了jsp代码后,编译,然后访问就出现这个异常
严重: Servlet.service() for servlet jsp threw exception
java.lang.NoSuchFieldError: deferredExpression
at org.apache.taglibs.standard.tag.common.core.ForEachSupport.release(ForEachSupport.java:212)
at org.apache.jasper.runtime.TagHandlerPool.release(TagHandlerPool.java:156)
at org.apache.jsp.WEB_002dINF.page.user.index_jsp._jspDestroy(index_jsp.java:48)
at org.apache.jasper.runtime.HttpJspBase.destroy(HttpJspBase.java:60)
at org.apache.jasper.servlet.JspServletWrapper.destroy(JspServletWrapper.java:465)
at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:156)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:356)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
追问:无效,删除jar后直接报找不到class
那把jsp发上来,还有你改过什么地方,是不是改回去就不错了?
是改每一个用了jstl标签的jsp都会出现这个问题的
答案:jstl标签版本冲突
解决方案以及相关说明:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>使用的是jstl.jar
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>使用的是jstl-1.1.2.jar或jstl-1.2.jar
工程中使用的标签必须统一,只用一个jar包。发布后检查Tomcat中jar包是否只有一个。
其他:http://stackoverflow.com/questions/7837576/using-jstl-causes-deferredexpression-error-on-change
自己看一下
上一个:jsp中的javascript代码不执行。 ie6,windowx2003
下一个:为什么我的电脑运行部了带javabean的jsp文件,配置绝对正确,因为之前的简单代码都可以运行,