参数接收的几种方法希望对大家有些帮助
首先建一个bean类User,并设置get和set方法和toString方法
package cn.hd.param; public class User { private String name; private String psd; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPsd() { return psd; } public void setPsd(String psd) { this.psd = psd; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", psd='" + psd + '\'' + '}'; } }
一 属性驱动
为什么可以在方法中设置变量
原因:struts2是线程安全的
在Action类中直接定义属性姓名,然后设置get set方法
在访问的地方传入对应的属性名和值 struts2自动接收
package cn.hd.param;
import com.opensymphony.xwork2.ActionSupport;
public class AttrAction extends ActionSupport {
private String name;
private String psd;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPsd() {
return psd;
}
public void setPsd(String psd) {
this.psd = psd;
}
@Override
public String execute() throws Exception {
return super.execute();
}
public String login(){
System.out.println(name);
System.out.println(psd);
return NONE;
}
}
Struts.xml
<action name="attrAction" class="cn.hd.param.AttrAction" method="login" >
</action>
二 对象驱动
首先定义一个bean类,然后再Action里定义一个对象,并且加上get set 方法
并且在请求的地方,请求参数键值有规定,必须按照规定的对象名.属性名的方式传递
package cn.hd.param;
import com.opensymphony.xwork2.ActionSupport;
public class ObjAction extends ActionSupport {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@Override
public String execute() throws Exception {
System.out.println(user);
return NONE;
}
}
Struts.xml
<action name="objAction" class="cn.hd.param.ObjAction">
</action>
三 模板驱动
实现ModuleDriver<User>接口
重写方法
在Action中创建一个user对象,并且要new对象
请求的地方还是按照对象属性传递
package cn.hd.param;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class ModuleAction extends ActionSupport implements ModelDriven<User> {
private User user = new User();
@Override
public String execute() throws Exception {
System.out.println(user);
return NONE;
}
@Override
public User getModel() {
return user;
}
}
Struts.xml
<action name="moduleAction" class="cn.hd.param.ModuleAction" method="execute">
</action>