struts2中的Action接收表单传递过来参数的3种方法

来源:互联网 发布:dsd音乐播放软件 编辑:程序博客网 时间:2024/06/05 15:57

1.  在Action类中定义表单属性,两者属性名称必须一致。提供setter,getter方法。即可接收到表单传过来的参数。这种接收参数的方法,方便简单,但是结构性不是很好,且当表单传递来的参数很多的时候,整个Action类中充斥着setter,getter方法,程序结构不是很美观。

JSP中的表单

<form action="login.action" method="post">

    用户名:<input type="text" name="username"/>    <br/>

    密码:  <input type="password" name="password" /> <br/>

    <input type="submit" value="登陆" />

</form>

 

Action中的属性                                                        

public class LoginAction extends ActionSupport {

    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 String execute(){

       ifusername.equalsIgnoreCase("aaa")&&password.equals("aaaaaa")){

           return SUCCESS;

       }

       else{

           return ERROR;

       }

    }

}

2. 把表单传递过来的参数封装成一个类,然后调用其中的属性。Action中,定义该类的对象就可以了,jsp页面相应name属性也需要做一下处理,这种方法,在struts开发中是很常用的一种方法!

在表单中提交的属性名改为user.username

<form action="login.action" method="post">

       用户名:<input type="text" name="user.username"/>  <br/>

       密码:  <input type="password" name="user.password" /> <br/>

       <input type="submit" value="登陆" />

    </form>

LoginAction中的属性改为user

public class LoginAction extends ActionSupport{

    private User user; 

    public User getUser() {

       return user;

    }

    public void setUser(User user) {

       this.user = user;

    }

    public String execute(){

       if(user.getUsername().equalsIgnoreCase("aaa")&&user.getPassword().equals("aaaaaa")){

           return SUCCESS;

       }

       else{

           return ERROR;

       }

    }

}

 

 

3.  使用Struts2中的ModelDriven数据模式。首先Action类必须实现ModelDriven接口,同样把表单传来的数据封装起来,Action类中必须实例化该对象,并且要重写getModel()方法。表单传来的参数封装在users对象中
表单属性名不需要加上引用user对象,直接传参数名。

Action类要实现一个泛型接口,前台表单与1相同

public class LoginAction extends ActionSupport implements ModelDriven<User> {

    private User user = new User();

    public User getModel() {

       return user;

    }

    public String execute(){

       if(user.getUsername().equalsIgnoreCase("aaa")&&user.getPassword().equals("aaaaaa")){

           return SUCCESS;

       }

       else{

           return ERROR;

       }

    }  

}


0 0
原创粉丝点击