- 前奏Demo:
- 1.Action代碼:
- package com.demo.action;
- 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;
- }
- }
- 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 string">"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 string">"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 string">"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 string">"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 string">"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" οnmοuseοver="this.bgColor='beige';" οnmοuseοut="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>
前奏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" target="_blank" rel="external nofollow" >測試</a>
<table >
<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 >
<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 >
<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 >
<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 >
<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" οnmοuseοver="this.bgColor='beige';" οnmοuseοut="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>