做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>

最新文章

  1. 在DevExpress中使用CameraControl控件进行摄像头图像采集
  2. &lt;十四&gt;JDBC_c3p0数据库连接池
  3. Python 下的unittest测试框架
  4. MMORPG大型游戏设计与开发(客户端架构 part11 of vegine)
  5. Enum的使用
  6. POJ 2101
  7. HDU2838Cow Sorting(树状数组)
  8. 表单元素的submit()方法和onsubmit事件(转)
  9. define a class for a linked list and write a method to delete the nth node.
  10. [Android FrameWork 6.0源码学习] LayoutInflater 类分析
  11. 编写一篇博文介绍COOKIE和Session的原理及异同
  12. 阿里云服务器上通过Docker部署redmine
  13. proto 2 语法
  14. TransmittableThreadLocal 解决 线程池线程复用 无法复制 InheritableThreadLocal 的问题.
  15. php中如何解决显示数据库中的内容乱码
  16. js-ES6学习笔记-Generator函数
  17. Openstack入门篇(十七)之Cinder服务--&gt;安装并配置一个本地存储节点
  18. 数据结构与算法之KMP 字符串匹配
  19. DLL的概念、dll导出类(转贴)
  20. 全局变量重复定义,fatal error LNK1169: 找到一个或多个多重定义的符号

热门文章

  1. jdbc批量写入
  2. MySQL count
  3. ISO/IEC 9899:2011 引言
  4. 浏览器低延时播放监控摄像头RTSP海康大华硬盘录像机NVR视频(EasyNVR播放FLV视频流)
  5. postgrelsql 的 wm_concat : string_agg
  6. [LeetCode] 12. Integer to Roman 整数转为罗马数字
  7. Dnsmasq MacOS使用介绍
  8. window系统修改时区IIS需要重启
  9. 博客迁移到github了
  10. Django学习之django自带的contentType表