0

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

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

4

1 回答 1

2

action bean 放在值栈的顶部,参数直接通过名称访问,即userName, password。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.

于 2014-03-20T08:53:19.983 回答