struts2中遍历Map集合总结(转)


前奏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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值