Struts2中Action接收参数的方法主要有以下几种:
- 使用Action的属性接收参数:JSP:
<form action=
"sys/login.action"
method=
"post"
>
<input type=
"text"
name=
"username"
>
<input type=
"submit"
value=
"submit"
>
</form>
Action:直接通过get、set方法获取。
public
class
sysAction
extends
ActionSupport{
private
String username;
public
String login()
throws
Exception {
System.out.println(username);
return
SUCCESS;
}
public
String getUsername() {
return
username;
}
public
void
setUsername(String username) {
this
.username= username;
}
}
- 使用DomainModel接收参数:JSP:
<form action="sys/login.action" method="post">
<input type="text" name="user.username">
<input type="text" name="teacher.level">
<input type="submit" value="submit">
</form>
Action:
public class sysAction extends ActionSupport{
private User user;
private Teacher teacher;
public String login() throws Exception {
System.out.println(user.getUsername());
System.out.println(teacher.getLevel());
return SUCCESS;
}
public void setUser(User user) {
this.user = user;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
}
}
public void setUser(User user) {
this.user = user;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
} - 使用ModelDriven:
在创建Action 的时候,发现Action 实现了ModelDriven 接口,去调用接口的getModel()方法,取到了相关对象。
相应提交方式可以用get 和post,如:testAction? name=admin
public class TestAction extends BaseAction implements ModelDriven<ResBananRc> {
private static final long serialVersionUID = -7463970150000893325L;
private ResBananRc resBananRc = new ResBananRc();// 这里要手动的New下
public ResBananRc getModel() {
return resBananRc;
}
public void execeute() {
System.out.println("姓名:" + resBananRc.getName());
}
}