ModelDriven接口

ModelDriven接口

在开发中常常使用GET方法向服务器查询数据,使用POST方法向服务器提交数据。

当使用POST的方法提交数据时,如果数据量较大,在获取数据时,可能会造成代码的臃肿,而Struts2框架为我们提供了一个ModelDriven接口,对于实现了该接口的Action来说,只需定义了相应的Model,Struts2框架就会自动把用户提交的HTTP信息赋予相应的Model,需要注意的是,在Action中的Model对象必须实例化。

示例如下:

(1)创建一个名为UserInfo的Model :

publicclass UserInfo {

    private String name; //姓名

    privateintage;//年龄

    private String address;//住址

    private String phoneNumber;//电话

    private String email;//邮箱

    public String getName() {

        returnname;

    }

    publicvoid setName(String name) {

        this.name = name;

    }

    publicint getAge() {

        returnage;

    }

    publicvoid setAge(intage) {

        this.age = age;

    }

    public String getAddress() {

        returnaddress;

    }

    publicvoid setAddress(String address) {

        this.address = address;

    }

    public String getPhoneNumber() {

        returnphoneNumber;

    }

    publicvoid setPhoneNumber(String phoneNumber) {

        this.phoneNumber = phoneNumber;

    }

    public String getEmail() {

        returnemail;

    }

    publicvoid setEmail(String email) {

        this.email = email;

    }

    @Override

    public String toString() {

        return"[name="+name+",age="+age+",address="+address+",phoneNumber="+phoneNumber+",email="+email+"]";

    }

}

(2)创建一个实现了ModelDriven接口的Action类:

publicclass UserInfoAction implements ModelDriven {

    private UserInfo user=new UserInfo();

    private String message;

    public String add(){

        return"success";

    }

    public UserInfo getUser() {

        returnuser;

    }

    publicvoid setUser(UserInfo user) {

        this.user = user;

    }

    public String getMessage() {

        returnmessage;

    }

    publicvoid setMessage(String message) {

        this.message = message;

    }

    @Override

    public Object getModel() {

        returnuser;

    }

}

(3)在Struts.xml中添加action:

<action name="userInfo" class="com.chen.action.UserInfoAction" method="add">

            <result name="success">/userInfo/showUserInfo.jsp</result>

</action>

(4)编写提交信息的前端界面的核心代码:

<form action="${pageContext.request.contextPath}/userInfo.action">

姓名:<input type="text" name="name"><br>

年龄:<input type="text" name="age"><br>

住址:<input type="text" name="address"><br>

电话:<input type="text" name="phoneNumber"><br>

邮箱:<input type="text" name="email"><br>

<input type="submit" value="submit">&nbsp;&nbsp;<input type="reset" value="reset"><br>

</form>

(5)显示Model详细信息界面的核心代码:

<body>

${user.name}<br>

${user.age}<br>

${user.address}<br>

${user.phoneNumber}<br>

${user.email}<br>

</body>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值