1. 程式人生 > >struts2中對list和map集合進行封裝

struts2中對list和map集合進行封裝

一、對list集合進行封裝

1.首先建立一個user類,並重寫toString方法。

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.建立ListAction 類實現繼承ActionSupport的action類,新增user物件,再寫一個getter和setter方法,重寫excute方法

public class ListAction extends ActionSupport {

    private List<User> list;

    public List<User> getList() {
        return users;
    }

    public void setUsers(List<User> list) {
        this.list = list;
    }

    @Override
    public String execute() throws Exception {

        System.out.println(list);

        return
null; } }

3.在jsp頁面中,需要注意的是,input標籤中的name屬性不再是user物件的屬性名了,因為封裝的是list集合,所以要用list[i].屬性名來替換屬性名了。

  <body>
    <form action="${pageContext.request.contextPath}/list" method="post">
        username1:<input type="text" name="list[0].username"><br>
        password1:<input type="password" name="list[0].password"><br>

        username2:<input type="text" name="list[1].username"><br>
        password2:<input type="password" name="list[1].password"><br>

        <input type="submit" value="登入">
    </form>
  </body>

4.在struts.xml配置檔案中,我們只需要配置以下內容,因為預設訪問的是excute方法,而且方法return的是null,所以其他內容可以省略。

<struts>
    <package name="default" namespace="/" extends="struts-default">
    <action name="list" class="com.csdn.action.ListAction">
    </action>
    </package>
</struts>

二、對map集合進行封裝

1.我們可以採用上面的user類

2.建立MapAction 類實現繼承ActionSupport的action類,新增user物件,再寫一個getter和setter方法,重寫excute方法

public class MapAction 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 {

        System.out.println(map);

        return null;
    }
}

3.在jsp頁面中需要注意的是,因為要封裝的是map集合,我們用
map[‘鍵名’].屬性名來代替屬性名了,這裡我取了“a”和“b”作為鍵名。

<form action="${pageContext.request.contextPath}/map" method="post">
        username1:<input type="text" name="map['a'].username"><br>
        password1:<input type="password" name="map['a'].password"><br>

        username2:<input type="text" name="map['b'].username"><br>
        password2:<input type="password" name="map['b'].password"><br>

        <input type="submit" value="登入">
    </form>

4.struts.xml檔案的配置幾乎和上述相同

<struts>
    <package name="default" namespace="/" extends="struts-default">
    <action name="map" class="com.csdn.action.MapAction">
    </action>
    </package>
</struts>