天天看點

struts2周遊Map集合

  1. 前奏Demo:   
  2. 1.Action代碼:   
  3. package com.demo.action;   
  4. import org.apache.struts2.ServletActionContext;   
  5. import com.opensymphony.xwork2.ActionSupport;   
  6. public class TagAction extends ActionSupport {   
  7. private Map map = new HashMap();   
  8. public Map getMap() {   
  9.    return map;   
  10. }   
  11. public void setMap(Map map) {   
  12.    this.map = map;   
  13. }   
  14. public String execute() throws Exception{   
  15.     Book book = null;   
  16.    for(int i=0;i<10;i++){   
  17.      book = new Book(i,"book"+i);   
  18.      map.put(i, book);   
  19.     }   
  20.     ServletActionContext.getRequest().getSession().setAttribute("map", map);   
  21.    return SUCCESS;   
  22. }   
  23. }   
  24. 2.jsp頁面:   
  25. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>   
  26. <%@taglib uri="/struts-tags" prefix="s"%>   
  27. <html>   
  28. <head>   
  29. </head>   
  30. <body>   
  31. <a href="/struts2/testMap.action">測試</a>   
  32.     <table string">"1">   
  33.      <tr><td>周遊map中的key</td></tr>   
  34.      <tr><td>ID</td></tr>   
  35.      <s:iterator value="map.keySet()" id="bookId"> <!--value=“map.keys”也可以-->   
  36.       <tr><td><s:property value="#bookId"/></td></tr>   
  37.      </s:iterator>   
  38.     </table>   
  39.     <br>   
  40.     <table string">"1">   
  41.      <tr><td colspan="2">通過Key周遊map中的value(value值是Book類型的對象)</td></tr>   
  42.      <tr><td>ID</td><td>name</td></tr>   
  43.      <s:iterator value="map.keySet()" id="bookId">   
  44.       <tr>   
  45.        <td><s:property value="map.get(#bookId).id"/></td>   
  46.        <td><s:property value="map.get(#bookId).name"/></td>   
  47.       </tr>   
  48.      </s:iterator>   
  49.     </table>   
  50.     <br>   
  51.     <table string">"1">   
  52.      <tr><td colspan="2">通過嵌套的Iterator标簽周遊map中的value(value值是Book類型的對象)</td></tr>   
  53.      <tr><td>ID</td><td>name</td></tr>   
  54.      <s:iterator value="map.keySet()" id="bookId">   
  55.       <s:iterator value="map.get(#bookId)" id="book">   
  56.        <tr>   
  57.        <td><s:property value="#book.id"/></td>   
  58.        <td><s:property value="#book.name"/></td>   
  59.       </tr>   
  60.       </s:iterator>   
  61.      </s:iterator>   
  62.     </table>   
  63.     <br>   
  64.     <table string">"1">   
  65.      <tr><td colspan="2">在session中通過Key周遊map中的value(value值是Book類型的對象)</td></tr>   
  66.      <tr><td>ID</td><td>name</td></tr>   
  67.      <s:iterator value="#session.map.keySet()" id="bookId">   
  68.       <tr>   
  69.        <td><s:property value="#session.map.get(#bookId).id"/></td>   
  70.        <td><s:property value="#session.map.get(#bookId).name"/></td>   
  71.       </tr>   
  72.      </s:iterator>   
  73.     </table>   
  74.      <br>   
  75.      <table string">"1">   
  76.      <tr><td colspan="2">在session中通過嵌套的Iterator标簽周遊map中的value(value值是Book類型的對象)</td></tr>   
  77.      <tr><td>ID</td><td>name</td></tr>   
  78.      <s:iterator value="#session.map.keySet()" id="bookId">   
  79.       <s:iterator value="map.get(#bookId)" id="book">   
  80.        <tr>   
  81.        <td><s:property value="#book.id"/></td>   
  82.        <td><s:property value="#book.name"/></td>   
  83.       </tr>   
  84.       </s:iterator>   
  85.      </s:iterator>   
  86.     </table>   
  87. </body>   
  88. </html>   
  89. OK,到此為止,測試成功!然後将其用在我的項目中   
  90. 需求:   
  91.       有一個list集合(儲存的是廣告位)傳到jsp頁面中,管理者可以銷售廣告位(選中廣告位),選中之後要儲存到Session裡的Map對象中。當以後再進入jsp頁面時就要周遊List和session中的Map,如果List集合中的廣告位出現在Map中,就使其複選框呈選中狀态!   
  92.      action代碼省略:   
  93.      jsp代碼如下:   
  94. <table width="100%" cellspacing="0" cellpadding="3" align="center" class="StyleBorderOnly" >   
  95.       <tr>   
  96.        <td align="center" class="StylePopped" width="5%">選擇</td>   
  97.     <td align="center" class="StylePopped">廣告位名稱</td>   
  98.     <td align="center" class="StylePopped">所屬終端組</td>   
  99.           <td align="center" class="StylePopped">起始時間</td>   
  100.     <td align="center" class="StylePopped">終止時間</td>   
  101.     <td align="center" class="StylePopped">價格</td>   
  102. </tr>   
  103. <s:iterator value="listAdSpaces">   
  104.     <tr height="20" bgcolor="#FFFFFF" οnmοuseοver="this.bgColor='beige';" οnmοuseοut="this.bgColor='#FFFFFF';">   
  105.          <td align="center" class="TableColA">   
  106.          <input type="checkbox" name="ids" value="<s:property value="id"/>"  
  107.          <s:iterator value="#session.cart.cart.keySet()" id="id">   
  108.          <s:iterator value="#session.cart.cart.get(#id)" id="space">   
  109.                  <s:if test="id==#space.id">   
  110.                   checked   
  111.                    </s:if>   
  112.               </s:iterator>   
  113.          </s:iterator>   
  114.           /></td>   
  115.          <td class="TableColA" align="center"><s:property value="spaceName"/></td>   
  116.      <td class="TableColA" align="center"><s:property value="playList.terminalGroup.groupName"/></td>   
  117.      <td class="TableColA" align="center"><s:date name="playList.startTime" format="hh:mm:ss"/></td>   
  118.      <td class="TableColA" align="center"><s:date name="playList.endTime" format="hh:mm:ss"/></td>   
  119.      <td class="TableColA" align="center"><s:property value="price"/></td>   
  120. </tr>   
  121. </s:iterator>   
  122.      <tr>   
  123.      <td colspan="2">   
  124.       <input name="Submit3" type="submit" class="button1" value="确 定" onClick="selectAdSpace()">   
  125.       <input name="Submit3" type="submit" class="button1" value="關 閉" onClick="window.close()">   
  126.      </td>   
  127. </tr>   
  128. </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>