Struts2中的ModelDriven运用

来源:互联网 发布:淘宝网店txt 编辑:程序博客网 时间:2024/06/05 22:16

一、在什么情况下需要使用ModelDriven


比如有以下User实体类

public class User {    private int id;    private String username;    private String password;    private int age;    private String address;    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 int getAge() {       return age;    }    public void setAge(int age) {       this.age = age;    }    public String getAddress() {       return address;    }    public void setAddress(String address) {       this.address = address;    }    public int getId() {       return id;    }    public void setId(int id) {       this.id = id;    }} 

假如现在要实现添加User的功能,刚学strust2的时候我们都是现在action中定义相应属性的get、set方法以设置跟获取相应的值。但是这无疑十分麻烦,当属性十分多的时候,显得代码十分臃肿。
如下为UserAction

Class UserAction{    private int id;    private String username;    private String password;    private int age;    private String address;    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 int getAge() {       return age;    }    public void setAge(int age) {       this.age = age;    }    public String getAddress() {       return address;    }    public void setAddress(String address) {       this.address = address;    }    public int getId() {       return id;    }    public void setId(int id) {       this.id = id;    }    public String add(){        User user = new User();        user.setId(id);        user.setUsername(username);        user.setPassword(password);        user.setAge(age);        user.setAddress(address);        new UserManager().addUser(user);        return "success";    }}

增加User用户的add.jsp页面

 <form action="test/user.action" method="post">     <input type="hidden" name="method:add">     username:<input type="text" name="username"> <br/>     password:<input type="text" name="password"> <br/>     age:<input type="text" name="age"> <br/>     address:<input type="text" name="address"> <br/>     <input type="submit" name="submit" value="添加用户"> </form>

可以看到,在action类里面又要重复写一次在user实体类里面的get、set方法。

二、如何使用ModelDriven来减少action中不必要的get、set方法

public class UserAction implements ModelDriven{    private User user;    public Object getModel() {       if(user == null){           user = new User();       }       return user;    }    public String add(){       new UserManager().addUser(user);       return "success";    }    public User getUser() {       return user;    }    public void setUser(User user) {       this.user = user;    }}

这样就可以减少很多重复的代码

0 0