jstl <c:forEach>嵌套循环同一个集合异常,求解释

开源中国拾荒者 发布于 2016/07/06 12:39
阅读 1K+
收藏 0

jsp页面中,jstl 的<c:forEach>嵌套循环同一个集合出现异常,求解释。不要问我为什么要嵌套循环同一个集合,就解释一下为什么这么嵌套循环会出现异常,十分感谢.

jsp页面代码:

<c:forEach items="${menu }" var="menu" >
    ${menu.name}
    <c:forEach items="${menu }" var="m">
        ${m.name}
    </c:forEach>
</c:forEach>

menu是有数据的list集合,异常信息如下:

严重: Servlet.service() for servlet jsp threw exception
javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in &lt;forEach&gt;
	at org.apache.taglibs.standard.tag.common.core.ForEachSupport.toForEachIterator(ForEachSupport.java:274)
	at org.apache.taglibs.standard.tag.common.core.ForEachSupport.supportedTypeForEachIterator(ForEachSupport.java:238)
	at org.apache.taglibs.standard.tag.common.core.ForEachSupport.prepare(ForEachSupport.java:155)
	at javax.servlet.jsp.jstl.core.LoopTagSupport.doStartTag(LoopTagSupport.java:256)
	at org.apache.jsp.WEB_002dINF.views.admin.page.left_jsp._jspx_meth_c_005fforEach_005f1(left_jsp.java:322)
	at org.apache.jsp.WEB_002dINF.views.admin.page.left_jsp._jspx_meth_c_005fforEach_005f0(left_jsp.java:285)
	at org.apache.jsp.WEB_002dINF.views.admin.page.left_jsp._jspService(left_jsp.java:148)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

七月 06, 2016 12:33:08 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [springmvc] in context with path [/cms] threw exception [org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/admin/page/left.jsp at line 45

42:             </li>
43:             <c:forEach items="${menu }" var="menu" >
44:             	${menu.name}
45:             	<c:forEach items="${menu }" var="m">
46:                   	${m.name}
47:     			</c:forEach>
48:             </c:forEach>








加载中
0
护士的小黄瓜
护士的小黄瓜

这么简单的问题完全不想回,而且都是你自己作的

<c:forEach items="${menu }" var="menu" >
    ${menu.name}
    <c:forEach items="${menu }" var="m">
        ${m.name}
    </c:forEach>
</c:forEach>



<c:forEach items="${menu }" var="m">
这么${menu}的menu是
<c:forEach items="${menu }" var="menu" >
这个var的menu  这个menu已经不是list或者map,所以提示异常Don't know how to iterate over supplied"items" in &lt;forEach&gt;  不知道怎么迭代menu

开源中国拾荒者
开源中国拾荒者
真是自己作死,道理是知道的,大意了没仔细检查。十分感谢
0
GITTODO
GITTODO
内循环的items换个名字不行吗?
GITTODO
GITTODO
突然好无语的感觉
GITTODO
GITTODO
回复 @殘陽丶 : 两个for循环不能用同一个变量名啊
开源中国拾荒者
开源中国拾荒者
换个名字肯定行,我想知道的是为什么外层循环与内层循环的items是同一个名称不行
0
Mr_K
Mr_K
先说这样有啥意义~
0
开源中国拾荒者
开源中国拾荒者

引用来自“GITTODO”的评论

内循环的items换个名字不行吗?
<c:set var="me" value="${menu }"></c:set>
<c:forEach items="${me }" var="m1">
       ${m1.name}
    <c:forEach items="${me }" var="m2">
        ${m2.name}
    </c:forEach>             
</c:forEach>

不能用同一个变量名的话,上面又怎么解释,显示正常

返回顶部
顶部