【Struts2】06 数据封装

Struts2提供了三种封装方式:

1、属性封装

2、模型封装

3、表达式封装

 

属性封装

就是Action类中声明请求发送过来的参数K键的值

例如表单信息的这些username & password;

用户名称<input type="text" name="username">
<br>
用户密码<input type="text" name="password">

然后Action类就这样来设置

@Override
public String execute() throws Exception {
    System.out.println(username + " " + password);
    return super.execute();
}

 

模型封装:

Struts2支持模型类实例的属性封装

声明一个模型类:

package cn.dzz.pojo;

/**
 * @author Echo42
 * @file Struts2
 * @create 2020年08月29日17:42
 */
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;
    }

    public User() {
    }

    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

Action类的改变:

这也好像没太大区别。。

注意的问题就是属性和模型不可以同时使用,如果同时使用,Struts2会注入模型,属性则注入空了。。。

表达式封装:

然后表单或者参数的声明就是这样设置:

用户名称<input type="text" name="user.username">
<br>
用户密码<input type="text" name="user.password">

 

集合类型封装:

List集合类型:

请求参数:

用户名称<input type="text" name="userList[0].username">
<br>
用户密码<input type="text" name="userList[0].password">
<br>
用户名称<input type="text" name="userList[1].username">
<br>
用户密码<input type="text" name="userList[1].password">
<br>
用户名称<input type="text" name="userList[2].username">
<br>
用户密码<input type="text" name="userList[2].password">

 

同理Map类型:

表单的name属性写法:

用户名称<input type="text" name="userMap['one'].username">
<br>
用户密码<input type="text" name="userMap['one'].password">
<br>
用户名称<input type="text" name="userMap['two'].username">
<br>
用户密码<input type="text" name="userMap['two'].password">
<br>
用户名称<input type="text" name="userMap['three'].username">
<br>
用户密码<input type="text" name="userMap['three'].password">

中括号的名称就是Map中的值的名称,

当前的值类型为User类型,实例的名称就是这个表单的命名

 

posted @ 2020-08-29 18:03  emdzz  阅读(130)  评论(0)    收藏  举报