第一种,直接用action的属性接收,是初学者常用的方法。
package com.starain.user;
public class User{
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(){
return "success";
} }
表单中直接提交和set,get同名的参数即可
第二种,DomainModel(或DTO)方式接收
package com.starain.action; import com.starain.user.*;
public class LoginAction{
private User user;//struts2会自己new
public String running(){
if (user.getUsername().equals("admin")&&user.getPassword().equals("admin")) {
return "success";
}
return "error";
}
public User getUser(){
return user;
}
public void setUser(User user){
this.user = user;
} }
对应的表单提交参数为:对象实例.参数(get,set同名参数)
第三种,DrivenModel方式接收
package com.starain.action;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.starain.user.*;
public class LoginAction extends ActionSupport implements ModelDriven<User>{//实现ModelDriven接口,用泛型,否则需要强制类型转换
private User user = new User();//用ModelDriven的方式struts2不会自己new了,需要手动new
public String running(){
if (user.getUsername().equals("admin")&&user.getPassword().equals("admin")) {
return "success";
}
return "error";
}
public User getUser(){
return user;
}
public void setUser(User user){
this.user = user;
} //这个必须有
public User getModel() {
// TODO Auto-generated method stub
return user;
}
}
表单提交的参数直接和action中get,set同名参数即可
一般有以下五种
1. 用Action 的属性接收参数
2. 使用Domain ModelModel接收参数
3. 使用DTO--DTO--数据传输对象接收参数
4. 使用 ModelDriven接收参数
5. 使用request 对象接收参数