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;
}
}