1. 程式人生 > >Struts2把資料封裝到集合中之封裝到Collection中

Struts2把資料封裝到集合中之封裝到Collection中


資料封裝到集合中,可以封裝到集合中,也可以封裝到Map中。該篇部落格主要講解資料封裝到集合中的封裝到Collection中。

1. 封裝複雜型別的引數(集合型別 Collection 、Map介面等) 2. 需求:頁面中有可能想批量新增一些資料,那麼現在就可以使用上述的技術了。把資料封裝到集合中 3. 把資料封裝到Collection中(單元素集合)封裝到集合集合中可以儲存多條資料 * 因為Collection介面都會有下標值,所有頁面的寫法會有一些區別,注意: > <input type="text" name="products[0].name" /> product為集合的名字
* 在Action中的寫法,需要提供products的集合,並且提供get和set方法。

以封裝到list集合為例:
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類RegistAction:這裡的寫法與封裝資料的屬性封裝寫法類似:定義屬性(注意這裡不需要例項化),然後定義set和get方法即可。

package com.huida.action1;

import java.util.List;

import com.huida.domain.User;
import com.opensymphony.xwork2.ActionSupport;

public class Regist4Action extends ActionSupport{
    
    List<User> list;//這裡list作為屬性,不需要new例項
    //定義Set和get方法
    
    public List<User> getList() {
        return list;
    }

    public void setList(List<User> list) {
        this.list = list;
    }
    
    @Override
    public String execute() throws Exception {
        
        for(User user:list){
            //如果成功就會輸出
            System.out.println(user);
        }
        return NONE;
    }

    
}

3.對action在struts.xml中進行配置:

<package name="demo" namespace="/" extends="struts-default">
        <action name="regist4Action" class="com.huida.action1.Regist4Action"></action>
    </package>

4.書寫表單,因為集合可以封裝多條資料,所以這裡在表單中多寫幾條記錄:這裡還要注意name中值的寫法:list[0].username

<h3>資料封裝到list集合中</h3>
    <!-- 將資料封裝到集合中,可以封裝多條資料,所以我們在這裡多寫幾個記錄 -->
    <form action="${ pageContext.request.contextPath }/regist4Action.action" method="post"> 
        姓名<input type="text" name="list[0].username"/><br/>
        密碼<input type="text" name="list[0].password"/><br/>
        姓名<input type="text" name="list[1].username"/><br/>
        密碼<input type="text" name="list[1].password"/><br/>
        <input type="submit" value="註冊">

注意:表單請求跳轉的頁面(regist4Action.action)應該與struts.xml配置檔案中action標籤中name對應的值相同,否則會出現資源找不到的錯誤。

啟動伺服器,執行index.jsp頁面,在表單中輸入姓名和密碼,點選註冊,會在控制檯輸出如下內容表示封裝資料成功:

所以我們可以利用集合來對資料進行批量處理(批量載入,批量刪除)。