struts2的s:iterator标签小计
对s:iterator一直都是简单的使用,今天遇到一个比较复杂的逻辑,要对s:iterator进行嵌套使用,第二层迭代是使用第一层迭代出来的数据。
后台传过来List<Map<String,Object>> list对象,map中还包含List对象,
后台传的参数
List<Map<String, Object>> prizesList=new ArrayList<Map<String,Object>>(); Map<String, String> prizesMap=userService.queryActivity(prizeId,typeI); prizesMap.put("hasActivity", totalDetail.get(1).get("numTotal").toString()); prizesMap.put("nuHasActivity", totalDetail.get(0).get("numTotal").toString()); prizesMap.put("hasReceived", totalDetail.get(2).get("numTotal").toString()); Map<String, Object> prizes=new HashMap<String, Object>(prizesMap); prizes.put("hasActivity", totalDetail.get(1).get("numTotal").toString()); prizes.put("nuHasActivity", totalDetail.get(0).get("numTotal").toString()); prizes.put("hasReceived", totalDetail.get(2).get("numTotal").toString()); List<Map<String,Object>> datas = userService.queryPrizes(prizeId,typeI); prizes.put("list", datas); prizesList.add(prizes);
在前台使用
<s:IF test="#request.prizesList.size>0 && #request.prizesList!=null"> <s:iterator VALUE="#request.prizesList" var="bean"> <DIV class="ht_p"> <DIV style="margin: 20px 0 10px 0;"> <span style="font-size: 16px;">${bean.prizesName}</span> <span><a href="supplementVouchers.do?id=${bean.id}&taskId=${activityMap.id}">${bean.prizesName}</a></span> <span><a href="countLottery.do?taskId=${activityMap.id}&type=${bean.prizesType}" >统计</a></span> </DIV> <p><span>剩余数量:${bean.restNum}</span><span>发行总数量:${bean.totalNum}</span><p><span>已领取数量:${bean.hasActivity}</span><span>已使用数量:${bean.hasReceived} </span><span>未领取数量:${bean.nuHasActivity} </span></p> <p><a href="queryActiveDetailInfo.do?id=${bean.id}&type=${bean.prizesType}" target="_blank">查看详情</a> <a href="activeVouchersDetail.do?partenId=${bean.id}&type=0" target="_blank">发行${bean.prizesName }</a> </p> <DIV style="padding-left: 50px;"> <s:iterator VALUE="top.list" id="inner" var="ubean"> <DIV style="border-top: 1px dashed #ccc;"> <DIV style="margin: 10px 0 10px 0;font-size: 16px;">${ubean.mark}</DIV> <p><span>剩余数量:${ubean.prizesRest}</span><span>发放数量:${ubean.prizesUse} </span><span>使用数量:${ubean.useNumber} </span></p> <p><a href="activeVouchersDetail.do?id=${ubean.id}&type=2" target="_blank">查看详情</a> <a href="activeVouchersDetail.do?partenId=${bean.id}&id=${ubean.id}&type=1" target="_blank">补 充</a> </p> </DIV> </s:iterator> </DIV> </DIV> </s:iterator>
s:iterator内层的value可以使用top来获取上层迭代的数据