您的位置:首页 > Web前端 > JavaScript

JSP页面嵌套c:forEach

2016-06-17 18:08 483 查看
做java web项目有时候会需要在页面使用嵌套<c:forEach>遍历一个List,但是嵌套很容易忽略一些东西导致出错

后台代码:

List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (Map<String, Object> map : list) {
List<Map<String, Object>> wordsList = new ArrayList<Map<String, Object>>();
Map<String, Object> tmap = new HashMap<String, Object>();
tmap.put("author", "author");
tmap.put("sign", "sign");
wordsList.add(tmap);
map.put("wordsList", wordsList);
}
model.addAttribute("list", list);


这个时候list里面的每一个元素还包含一个wordsList,到页面遍历就需要用到嵌套<c:forEach>

JSP页面代码:

<c:forEach items="${list }" var="cl" varStatus="i">
<c:forEach items="${cl.wordsList}" varStatus="i" var="wl">
<li>${wl.author }</li>
<li>${wl.sign }</li>
</c:forEach>
</c:forEach>


在写内层循环的时候很容易犯错,写成

<c:forEach items="${wordsList}" varStatus="i" var="wl">
<li>${wl.author }</li>
<li>${wl.sign }</li>
</c:forEach>


内层循环的items属性需要带上上层循环的var属性值,必须写成

<c:forEach items="${cl.wordsList}" varStatus="i" var="wl">
<li>${wl.author }</li>
<li>${wl.sign }</li>
</c:forEach>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: