<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的
<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的
++++++++++++++++++++++++++++++++++++++++++++++++++++
是类型转换异常,你试图将一个非Integer型的变量转换为Integer时会出此异常!!!
页面上只有string类型
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报的错,不好意思。
at org.apache.jsp.admin.sidebar_jsp._jspService(sidebar_jsp.java:244)
这个已经说的很明白了,你看244处就一目了然了。另外表告诉我你不知道sidebar_jsp.java这个文件你不知道到哪里找?
我JSP页面里。比较时出错了,<logic:equal value=" <%=(String) sysMcode1%>" name="list1" property="parentId"> 应该如何做
1修改为<bean:define id="sysMcode1" name="list" property="sysMcode" type="java.lang.Integer" />
2修改为<logic:equal value=" <%=sysMcode1%>" name="list1" property="parentId">
这样都是Integer的比较就没有问题了
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"
// 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) {