Struts2三种传值方法:
- Model方法传值(最简单)
- DomainModel(域模型)方法传值(工程中最常用)
- ModelDriven(模型驱动)传值(不推荐)
ü Model方法传值
在Action中定义与表单名字相同的String变量,并给出getter和setter方法,Struts2底层会自动将表单的值传给Action中的变量。
HTML表单
<form method="post" action="Student_reg!reg"> <input type="text" name="username"><br> <input type="text" name="password"><br> <input type="submit"><input type="reset"> </form>
Struts.xml配置
<struts> <constant name="struts.devMode" value="true"></constant> <package name="default" namespace="/" extends="struts-default"> <action name="Student_*" class="cn.potato.action.StudentAction"> <result name="{1}"> /Student_{1}_success.jsp </result> </action> </package> </struts>
Action类
public class StudentAction{ private String username; private String password; public String reg(){ System.out.println(username); System.out.println(password); return "reg"; } 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; } }
ü DomainModel(域模型)方法传值
通过getUser方法将A对象传给Struts2,Struts2调用setter方法进行赋值。
域模型
public class A { 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; } }
Action类
public class StudentAction{ private A user; public String reg(){ System.out.println(user.getUsername()); System.out.println(user.getPassword()); return "reg"; } public A getUser() { return user; } public void setUser(A user) { this.user = user; } }
ü ModelDriven(模型驱动)传值
Action类中自己new出A对象,然后利用getModel()把它传给Struts2,Struts2调用它的setter方法。
Action类
public class StudentAction extends ActionSupport implements ModelDriven<A>{ private A user=new A(); public String reg(){ System.out.println(user.getUsername()); System.out.println(user.getPassword()); return "reg"; } public A getModel() { // TODO Auto-generated method stub return user; } }