Jstl标签循环输出Map中的数据

4 篇文章 0 订阅

闲来没事写个小知识:

     直接上例子:

        假如有一个类: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的属性了。


          


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值