[数据来源]
- 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标签遍历问题,直接用定义一个变量就可以了,这样不会出现其他问题。