struts2接收参数的方法
struts2接收参数的方法主要有三种:
- 使用action中定义的属性,并创建get和set方法
- 使用DomainModel (域模型)接收参数
- 使用ModelDriven (模型驱动)接收参数
struts2 action获取表单传值:
1.通过属性驱动式
jsp:
<form action = "test/login.action method = "POST" >
<input type="text" name = "name" />
<input type="submit" name = "submit" />
</form>
action 直接通过get和set方法获取
public class LoginAction extends ActionSupport{
private String name;
public String execute() throws Execption{
System.out.println(name);
return SUCCESS;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
}
2.通过域模型接收参数
jsp:
<from action = "test/login.action method = "POST" >
<input type="text" name = "user.name" />
<input type="submit" name = "submit" />
</from>
----------
Java:
public class User{
private String name;
public User(){
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
}
public class LoginAction extends ActionSupport{
private User user;
public String execute() throws Execption{
System.out.println(user);
return SUCCESS;
}
public String getUser(){
return user;
}
public void setUser(User user){
this.user = user;
}
}
3.模型驱动方式接收参数,必须实现getModel()方法,特别要注意name的值应该与模型的属性对应,吃过一次亏
Jsp:
<form action="sys/login.action" method="post">
<input type="text" name="name"><!-- name 必须于模型属性对应-->
<input type="submit" value="submit">
</form>
----------
public class User{
private String name;
public User(){
}
}
public class LoginAction extends ActionSupport implements ModelDriven<User>{
private User user;
public String execute() throws Execption{
System.out.println(user);
return SUCCESS;
}
public User getModel() {
if(null == user){
return user = new User();
}
return user;
}
}