我应该在哪里提供Struts2中参数的getter和setter?

时间:2014-03-20 08:42:38

标签: java jsp struts2 ognl valuestack

我是Struts2的新手,我刚刚意识到每当我通过一个JSP页面的形式调用一个动作类时,我需要为被调用动作类中的所有参数设置getter和setter来访问参数,如图所示在行动类下面:

public class LoginAction extends ActionSupport {

    private String userName;
    private String password;

    public String execute {
    System.out.println(this.userName+" "+this.password);
    return "success";
    }

    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;
    }
}

但是,我还有一个用户的POJO类,它具有相同的2个属性及其getter和setter。有没有办法可以在我的动作类中使用那些getter / setter?现在我的POJO和动作类中都有getter和setter。任何人都可以帮助如何消除这种冗余吗?

1 个答案:

答案 0 :(得分:2)

动作bean放在值堆栈的顶部,参数直接按名称访问,即userNamepassword。 Struts2使用OGNL访问值堆栈中的对象,因此如果将POJO放置到值堆栈,则可以通过OGNL访问它。例如

public class LoginAction extends ActionSupport {

   private User user;

   public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
}

它应该使用参数名称user.userNameuser.password