这个程序是Struts程序,JSP页面错误部分如下:
<logic:iterate id="EAVO"  name="AForm" property="resultList" type="test.EAVO" indexId="index">JSP-Servlet代码如下:                            EAVO = (test.EAVO)pageContext.findAttribute("EAVO"); 
在其他的JSP中,此种写法没有问题,不知道还有什么情况导致这个问题!java.lang.ClassCastException
at jsp_servlet._web_45_inf._jsp._admin.__ea006._jspService(__ea006.java:564)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.RequestDispatcherImpl$ForwardAction.run(RequestDispatcherImpl.java:385)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:286)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at ouc.util.AccessFilter.doFilter(AccessFilter.java:158)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6316)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

解决方案 »

  1.   

    EAVO   =   (test.EAVO)pageContext.findAttribute("EAVO");
    前面加一句:
    System.out.println(pageContext.findAttribute("EAVO").getClass().getName());
    然后看控制台输出
    看看你取出来的究竟是什么类型。你把它给转错类型了
      

  2.   

    谢谢 苹果兄,这个EAVO       =       (test.EAVO)pageContext.findAttribute("EAVO"); 代码是服务器自己编译的jsp转servlet。 这个问题我已经找到了,是我的疏忽,在底层class为form的Arraylist传值时用的变量和其他mothed的变量重名了,且我又把此重名的定义提到了类定义中,因此变量中的类型发生论乱,故出现了此类问题。现问题解决,谢谢各位关注。