Struts2接收参数的方法有3种分别是:
1.用Action的属性接收参数
2.用DomainModel接收参数
3.用ModelDriven接收参数
一:用Action的属性接收参数的例子如下:
UI页面代码如下:
<body> 使用action属性接收参数<a href="user/user!add?name=credo&age=25">添加用户</a> </body>
package org.credo.struts2.user.action; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport { private String name; private int age; public String add() { System.out.println("name=" + name); System.out.println("age=" + age); return SUCCESS; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
那么就可以直接进行传参,?name=credo&age=25
在action种将获取到这些值.
二.用DomainModel接收参数例子如下:
DomainModel是指域模型,就是model.最常用的一种.
UI代码:
<body> 使用Domain Model接收参数<a href="user/user!add?user.name=credo&user.age=25">添加用户</a>
Action代码:
public class UserAction extends ActionSupport { private User user; public String add() { System.out.println("name=" + user.getName()); System.out.println("age=" + user.getAge()); return SUCCESS; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }
public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
像上面这样就是使用dimainmodel来接收参数.
如果说User只有name,age,但是页面有额外的其他参数,如sex等.
可以使用一个VO来接收参数.
public class UserVO { private String name; private String password; private String confirmingPassword;
//GET AND SET
}
三.用ModelDriven接收参数,不常用
模型驱动这种方法并不常用.
UI代码:
<body> 使用ModelDriven接收参数<a href="user/user!add?name=credo&age=25">添加用户</a>
Action代码:
注意:实现了ModelDriven.<User>,并且需要new一个User.
public class UserAction extends ActionSupport implements ModelDriven<User>{ private User user = new User(); public String add() { System.out.println("name=" + user.getName()); System.out.println("age=" + user.getAge()); return SUCCESS; } @Override public User getModel() { return user; } }
Model->User.java代码:
public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
实现了ModelDriven.<User>,进入action,将给新new出的User的name和age进行自动赋值.这种方法不常用.如图所示:
Over............