<logic:iterate id="list" name="menulist" scope="session">
    <logic:equal name="list" property="sysMlevel" value="1">
         1:<bean:define id="sysMcode1" name="list" property="sysMcode" />
               <html:link action="/menu.do" paramId="sysMcode" paramName="list" paramProperty="sysMcode" scope="session" target="mainFrame">
                    <bean:write name="list" property="sysMname" />
               </html:link>
               <logic:iterate id="list1" name="menulist" scope="session">
                  2:<logic:equal value="<%=(String) sysMcode1%>" name="list1"property="parentId"          <bean:write name="list1" property="sysMcode" />
                  </logic:equal>
               </logic:iterate>
    </logic:equal>
</logic:iterate>
JSP页面报错如下:
2008-4-11 10:08:10 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.ClassCastException: java.lang.Integer
at org.apache.jsp.admin.sidebar_jsp._jspService(sidebar_jsp.java:244)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        ......

要实现的就是在2:处引用1:处定义的变量,与parentId进行比较。 在bean里,sysMcode和parentId都是INT的

解决方案 »

  1.   

    java.lang.ClassCastException: java.lang.Integer 
    ++++++++++++++++++++++++++++++++++++++++++++++++++++
    是类型转换异常,你试图将一个非Integer型的变量转换为Integer时会出此异常!!!
      

  2.   

    在bean里,sysMcode和parentId都是INT的
    页面上只有string类型
      

  3.   

    org.apache.jasper.JasperException: An exception occurred processing JSP page /admin/sidebar.jsp at line 5552:  <bean:write name="list" property="sysMname" />
    53:  </html:link>
    54:  <logic:iterate id="list1" name="menulist" scope="session">
    55:  <logic:equal value="<%=(String) sysMcode1%>" name="list1"
    56:  property="parentId">
    57:  <bean:write name="list1" property="sysMcode" />
    58:  </logic:equal>
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524).......这是IE页面报错,前面的是TOMCAT报的错,不好意思。
      

  4.   

    =-=================================================
    at org.apache.jsp.admin.sidebar_jsp._jspService(sidebar_jsp.java:244)
    这个已经说的很明白了,你看244处就一目了然了。另外表告诉我你不知道sidebar_jsp.java这个文件你不知道到哪里找?
      

  5.   

    numen_wlm 
    我JSP页面里。比较时出错了,<logic:equal value=" <%=(String) sysMcode1%>" name="list1" property="parentId"> 应该如何做
      

  6.   

    老大,不是这里哦,这个是你的sidebar.jsp的内容,我要你看得是sidebar_jsp.java的244行。到你web容器部署的目录里面去找!!!
      

  7.   

    实际情况是两个地方都有问题,其实是可以直接比的
    1修改为<bean:define id="sysMcode1" name="list" property="sysMcode" type="java.lang.Integer" /> 
    2修改为<logic:equal value=" <%=sysMcode1%>" name="list1" property="parentId">
    这样都是Integer的比较就没有问题了
      

  8.   

    按楼上的做了,比较时还是出错了。
    An error occurred at line: 58 in the jsp file: /admin/sidebar.jsp
    The method setValue(String) in the type CompareTagBase is not applicable for the arguments (Integer)
    55:  </html:link>
    56:  <logic:iterate id="list1" name="menulist" scope="session">
    57: 
    58:  <logic:equal value="<%=sysMcode1%>" name="list1"
      

  9.   

    sidebar_jsp.java文件: 
    //  logic:equal
                              org.apache.struts.taglib.logic.EqualTag _jspx_th_logic_005fequal_005f1 = (org.apache.struts.taglib.logic.EqualTag) _005fjspx_005ftagPool_005flogic_005fequal_005fvalue_005fproperty_005fname.get(org.apache.struts.taglib.logic.EqualTag.class);
                              _jspx_th_logic_005fequal_005f1.setPageContext(_jspx_page_context);
                              _jspx_th_logic_005fequal_005f1.setParent((javax.servlet.jsp.tagext.Tag) _jspx_th_logic_005fiterate_005f1);
                              // /admin/sidebar.jsp(58,10) name = value type = null reqTime = true required = true fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
              就是这一行了:[color=#FF0000]_jspx_th_logic_005fequal_005f1.setValue((String)sysMcode1);[/color]
                              // /admin/sidebar.jsp(58,10) name = name type = null reqTime = true required = false fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
                              _jspx_th_logic_005fequal_005f1.setName("list1");
                              // /admin/sidebar.jsp(58,10) name = property type = null reqTime = true required = false fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
                              _jspx_th_logic_005fequal_005f1.setProperty("parentId");
                              int _jspx_eval_logic_005fequal_005f1 = _jspx_th_logic_005fequal_005f1.doStartTag();
                              if (_jspx_eval_logic_005fequal_005f1 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {