Struts2把資料封裝到集合中之封裝到map中
阿新 • • 發佈:2018-12-12
struts框架封裝資料可以封裝到集合中也可以封裝到map中,該篇部落格主要講解將資料封裝到map中。
1. 封裝複雜型別的引數(集合型別 Collection 、Map介面等) 2. 需求:頁面中有可能想批量新增一些資料,那麼現在就可以使用上述的技術了。把資料封裝到集合中
3. 把資料封裝到Map中(雙元素集合)
* Map集合是鍵值對的形式,頁面的寫法
> <input type="text" name="map['one'].name" />
* Action中提供map集合,並且提供get和set方法
以map集合為例:
1.建立javaBean類User:
package com.huida.domain; public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() {return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User [username=" + username + ", password=" + password + "]"; } }
2.建立Action類Regist5Action:action類的寫法與資料封裝中的屬性封裝類似:定義屬性map,對map定義其set和get方法。
package com.huida.action1; import java.util.Map; import com.huida.domain.User; import com.opensymphony.xwork2.ActionSupport; public class Regist5Action extends ActionSupport{ private Map<String, User> map; public Map<String, User> getMap() { return map; } public void setMap(Map<String, User> map) { this.map = map; } @Override public String execute() throws Exception { for(String str:map.keySet()){ User user=map.get(str); System.out.println(str+"..."+user); } return NONE; } }
3.在struts.xml中對action進行配置:
<package name="demo" namespace="/" extends="struts-default"> <action name="regist5Action" class="com.huida.action1.Regist5Action"></action> </package>
4.書寫表單:
這裡需要注意的地方:
(1)表單input標籤中name的值中集合的名字map應該與Regist5Action中定義的屬性名相同。
(2)map[ ]方括號裡面的內容可以隨便寫,但是同一條記錄中的兩個輸入框要保持一致。這裡面的one相當於map的鍵值。
<h3>資料封裝到map集合中</h3> <!-- 將資料封裝到集合中,可以封裝多條資料,所以我們在這裡多寫幾個記錄 --> <form action="${ pageContext.request.contextPath }/regist5Action.action" method="post"> 姓名<input type="text" name="map['one'].username"/><br/><!-- map[ ]這裡面的內容隨便寫,但是同一條記錄中的兩個輸入框要保持一致。這裡面的one相當於定義map中 的String型別的值 --> 密碼<input type="text" name="map['one'].password"/><br/> 姓名<input type="text" name="map['two'].username"/><br/> 密碼<input type="text" name="map['two'].password"/><br/> <input type="submit" value="註冊"> </form>
啟動伺服器,執行表單index.jsp。在輸入框中輸入姓名和密碼,點選註冊,在控制檯輸出如下內容表示封裝成功: