[数据来源]
- map中存放的是普通的基本数据类型,例如String,key,value
Map<Integer, String> commonMap = new HashMap<Integer, String>();
commonMap.put(1,"aaa");
commonMap.put(2,"bbb");
commonMap.put(3,"ccc");- 第二中map 的数据类型,其中value是一个对象
例如:
Map<Integer, StudentBean> specialMap = new HashMap<Integer, StudentBean>();
StudentBean s1 = new StudentBean();
StudentBean s2 = new StudentBean();
s1.setName("aaa");
s1.setAge(12);
s2.setName("bbb");
s3.setAge(14);
specialMap.put(1,s1);
specialMap.put(2,s2);数据整理完毕,这时候在进行遍历
对于普通的map,也就是第一种map遍历
方法一
<c:forEach items="${commonMap }" varStatus="status">
<c:set var="index" value="${status.index}"/>
<li id="attachOtherPath${index }">
<div style="display: inline;">
<img src=${pageContext.request.contextPath}/jsp/viewImage.jsp?imgPath=<c:out value='${commonMap[index]}'/> height="80" width="80" id="commonMap{index}"
onclick="PreviewImg(this);" />
</div>
</li>
</c:forEach>方法二
<c:forEach items="${commonMap }" varStatus="status" var="common">
<c:set var="index" value="${status.index}"/>
<li id="commonMap{index }">
<div style="display: inline;">
<img src=${pageContext.request.contextPath}/jsp/viewImage.jsp?imgPath=<c:out value='${common.value}'/> height="80" width="80" id="commonMap{index}"
onclick="PreviewImg(this);" />
</div>
</li>
</c:forEach>这种情况不用定义var就可以直接获取。
这两种方式去获取值,两者的区别第一种是直接把commontMap当作变量通过commonMap[index]获取数据,第二种是定义一个循环变量.
对于存放的是对象的map
方法一就不好用了 只能采用定义变量的方式
<c:forEach items="${specialMap }" varStatus="status" var="special">
<c:set var="index" value="${status.index}"/>
<li id="specialMap{index }">
<div style="display: inline;">
<img src=${pageContext.request.contextPath}/jsp/viewImage.jsp?imgPath=<c:out value='${specialMap.value.name}'/> height="80" width="80" id="specialMap{index}"
onclick="PreviewImg(this);" />
</div>
</li>
</c:forEach>总结:以后遇到C标签遍历问题,直接用定义一个变量就可以了,这样不会出现其他问题。
本文介绍了Java中Map集合的不同遍历方法,包括基本数据类型的Map及包含对象类型的Map的遍历方式,并对比了不同方法的特点。
526

被折叠的 条评论
为什么被折叠?



