Jstl标签循环输出Map中的数据
2012-03-22 18:02
197 查看
闲来没事写个小知识:
直接上例子:
假如有一个类:User(用户)
一个User有好多属性简单举例几个:id, name(姓名), address(地址).....
另一个类:Car(小车),其有几个简单属性: id, color(颜色), producers(厂家).......
假如有这样的情景,一个人拥有好几辆Car。
现在要求将一群人显示到页面,每个人的车也显示到页面。
Map<User, List<Car>> userInfoMap=new HashMap<User, List<Car>>(); //注意此处Map中存储的结构
...................例如有3个User对象:user1, user2,user3
...................例如user1拥有3两车:u1Car1, u1Car2,u1Car3, 其它两个用户也类似
....................List<Car> u1CarList=new ArrayList<Car>();
....................u1CarList.add(u1Car1);
....................u1CarList.add(u1Car2);
....................u1CarList.add(u1Car3);
....................其它类似
userInfoMap.put(user1, u1CarList);
userInfoMap.put(user2, u2CarList);
userInfoMap.put(user3, u3CarList);
request.setAttribute("userInfoMap",userInfoMap); //放到request中
------------------下边就jsp页面如何取出
<c:if test="${!empty userInfoMap}">
<c:forEach items="${userInfoMap}" var="obj">
${obj.key.name}<br/> //注意此处的写法key
${obj.key.address}<br/>
<c:if test="${!empty obj.value}">
<c:forEach items="${obj.value}" var="carObj"> //注意此处的写法value,也是第二次要循环的List
${carObj.color}<br/>
${carObj.producers}<br/>
<c:forEach>
</c:if>
</c:forEach>
</c:if>
第一层循环式取key值,即每个User对象,然后就可以取该对象的属性值了。
第二层循环是取key对应的value,此处value是一个集合对象,集合中的每个元素是一个Car对象,同样就可以取出Car的属性了。
直接上例子:
假如有一个类:User(用户)
一个User有好多属性简单举例几个:id, name(姓名), address(地址).....
另一个类:Car(小车),其有几个简单属性: id, color(颜色), producers(厂家).......
假如有这样的情景,一个人拥有好几辆Car。
现在要求将一群人显示到页面,每个人的车也显示到页面。
Map<User, List<Car>> userInfoMap=new HashMap<User, List<Car>>(); //注意此处Map中存储的结构
...................例如有3个User对象:user1, user2,user3
...................例如user1拥有3两车:u1Car1, u1Car2,u1Car3, 其它两个用户也类似
....................List<Car> u1CarList=new ArrayList<Car>();
....................u1CarList.add(u1Car1);
....................u1CarList.add(u1Car2);
....................u1CarList.add(u1Car3);
....................其它类似
userInfoMap.put(user1, u1CarList);
userInfoMap.put(user2, u2CarList);
userInfoMap.put(user3, u3CarList);
request.setAttribute("userInfoMap",userInfoMap); //放到request中
------------------下边就jsp页面如何取出
<c:if test="${!empty userInfoMap}">
<c:forEach items="${userInfoMap}" var="obj">
${obj.key.name}<br/> //注意此处的写法key
${obj.key.address}<br/>
<c:if test="${!empty obj.value}">
<c:forEach items="${obj.value}" var="carObj"> //注意此处的写法value,也是第二次要循环的List
${carObj.color}<br/>
${carObj.producers}<br/>
<c:forEach>
</c:if>
</c:forEach>
</c:if>
第一层循环式取key值,即每个User对象,然后就可以取该对象的属性值了。
第二层循环是取key对应的value,此处value是一个集合对象,集合中的每个元素是一个Car对象,同样就可以取出Car的属性了。
相关文章推荐
- 如何在JSP页面快速输出从Servlet接收的数据_看JSTL常用C标签的威力
- 利用jstl输出map中的数据
- 通过Struts标签和JSTL标签来遍历List<Map<String,String>>格式的数据
- javaweb—jstl如何循环List中的Map数据
- 详解javaweb中jstl如何循环List中的Map数据
- jstl使用foreach 循环遍历输出表格和数据
- 利用JSTL的循环输出Map中的值
- 利用JSTL的循环输出Map中的值
- Spring MVC使用jstl 标签c:forEach 遍历输出双层嵌套List的数据
- list列表循环输出记录 <JSTL>标签
- javaweb—jstl如何循环List中的Map数据 (转)
- 利用JSTL的循环输出Map中的值
- JSTL 的forEach标签循环迭代集合并逆序输出
- hadoop超时解决办法context.progress()的作用 假设在map()方法中,你有一个从数据库读取大量数据的操作,是用一个循环来完成的,并且,在读完全部的数据之前,你不会有任何的数据输出
- 页面上用c标签循环输出结果集时,怎么按一定数量和整齐的格式排序
- MapReduce剖析笔记之八: Map输出数据的处理类MapOutputBuffer分析
- ThinkPHP 模板循环输出 Volist 标签
- struts的bean:write标签无法输出int和bigdecimal数据的解决方法
- 如何将ajax请求返回的Json格式数据循环输出成table形式
- c标签遍历List<Map<String, Object>> 数据格式