struts2中遍历Map聚合总结(转)
struts2中遍历Map集合总结(转)
转自:http://hi.baidu.com/wabdqn/blog/item/64b342357a0b9c1b91ef39d7.html
前奏Demo: 1.Action代码: package com.demo.action; import java.util.HashMap; import java.util.Map; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class TagAction extends ActionSupport { private Map map = new HashMap(); public Map getMap() { return map; } public void setMap(Map map) { this.map = map; } public String execute() throws Exception{ Book book = null; for(int i=0;i<10;i++){ book = new Book(i,"book"+i); map.put(i, book); } ServletActionContext.getRequest().getSession().setAttribute("map", map); return SUCCESS; } } class Book{ private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } Book(int id,String name){ this.id = id; this.name = name; } } 2.jsp页面: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib uri="/struts-tags" prefix="s"%> <html> <head> </head> <body> <a href="/struts2/testMap.action">测试</a> <table border="1"> <tr><td>遍历map中的key</td></tr> <tr><td>ID</td></tr> <s:iterator value="map.keySet()" id="bookId"> <!--value=“map.keys”也可以--> <tr><td><s:property value="#bookId"/></td></tr> </s:iterator> </table> <br> <table border="1"> <tr><td colspan="2">通过Key遍历map中的value(value值是Book类型的对象)</td></tr> <tr><td>ID</td><td>name</td></tr> <s:iterator value="map.keySet()" id="bookId"> <tr> <td><s:property value="map.get(#bookId).id"/></td> <td><s:property value="map.get(#bookId).name"/></td> </tr> </s:iterator> </table> <br> <table border="1"> <tr><td colspan="2">通过嵌套的Iterator标签遍历map中的value(value值是Book类型的对象)</td></tr> <tr><td>ID</td><td>name</td></tr> <s:iterator value="map.keySet()" id="bookId"> <s:iterator value="map.get(#bookId)" id="book"> <tr> <td><s:property value="#book.id"/></td> <td><s:property value="#book.name"/></td> </tr> </s:iterator> </s:iterator> </table> <br> <table border="1"> <tr><td colspan="2">在session中通过Key遍历map中的value(value值是Book类型的对象)</td></tr> <tr><td>ID</td><td>name</td></tr> <s:iterator value="#session.map.keySet()" id="bookId"> <tr> <td><s:property value="#session.map.get(#bookId).id"/></td> <td><s:property value="#session.map.get(#bookId).name"/></td> </tr> </s:iterator> </table> <br> <table border="1"> <tr><td colspan="2">在session中通过嵌套的Iterator标签遍历map中的value(value值是Book类型的对象)</td></tr> <tr><td>ID</td><td>name</td></tr> <s:iterator value="#session.map.keySet()" id="bookId"> <s:iterator value="map.get(#bookId)" id="book"> <tr> <td><s:property value="#book.id"/></td> <td><s:property value="#book.name"/></td> </tr> </s:iterator> </s:iterator> </table> </body> </html> OK,到此为止,测试成功!然后将其用在我的项目中 需求: 有一个list集合(保存的是广告位)传到jsp页面中,管理员可以销售广告位(选中广告位),选中之后要保存到Session里的Map对象中。当以后再进入jsp页面时就要遍历List和session中的Map,如果List集合中的广告位出现在Map中,就使其复选框呈选中状态! action代码省略: jsp代码如下: <table width="100%" cellspacing="0" cellpadding="3" align="center" class="StyleBorderOnly" > <tr> <td align="center" class="StylePopped" width="5%">选择</td> <td align="center" class="StylePopped">广告位名称</td> <td align="center" class="StylePopped">所属终端组</td> <td align="center" class="StylePopped">起始时间</td> <td align="center" class="StylePopped">终止时间</td> <td align="center" class="StylePopped">价格</td> </tr> <s:iterator value="listAdSpaces"> <tr height="20" bgcolor="#FFFFFF" onmouseover="this.bgColor='beige';" onmouseout="this.bgColor='#FFFFFF';"> <td align="center" class="TableColA"> <input type="checkbox" name="ids" value="<s:property value="id"/>" <s:iterator value="#session.cart.cart.keySet()" id="id"> <s:iterator value="#session.cart.cart.get(#id)" id="space"> <s:if test="id==#space.id"> checked </s:if> </s:iterator> </s:iterator> /></td> <td class="TableColA" align="center"><s:property value="spaceName"/></td> <td class="TableColA" align="center"><s:property value="playList.terminalGroup.groupName"/></td> <td class="TableColA" align="center"><s:date name="playList.startTime" format="hh:mm:ss"/></td> <td class="TableColA" align="center"><s:date name="playList.endTime" format="hh:mm:ss"/></td> <td class="TableColA" align="center"><s:property value="price"/></td> </tr> </s:iterator> <tr> <td colspan="2"> <input name="Submit3" type="submit" class="button1" value="确 定" onClick="selectAdSpace()"> <input name="Submit3" type="submit" class="button1" value="关 闭" onClick="window.close()"> </td> </tr> </table>
转自:http://hi.baidu.com/wabdqn/blog/item/64b342357a0b9c1b91ef39d7.html