struts接收参数方式

时间:2023-03-09 13:32:35
struts接收参数方式

第一种,直接用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 对象接收参数