关于struts2提交表单到后台
第一种:适用于表单属性较少的操作环境
!!!注意:前台表单的name属性名务必与后台action的属性名保持一致
页面代码: <form action="' mehod="" />
// <input name="属性名"/>
<s:textfiled name="属性名“/>”
<input type=“submit”/>
</form>
后台代码: public class xxxx{ 缺点:此种方法 如果在表单属性较多的情况下使用,会对后台 代码造成侵入性
private 数据类型 属性名; 优点:单个数据明确(属性较少的情况才能体现)
private 数据类型 属性名;
...........
public 返回值 方法名(有无参数){
//new 一个对象实例,以User为例
User u=new User();
UserDao udao=new UserDaoImpl();
u.set方法(属性名);
udao.add(u);
}
此处为各种属性的get,set方法;
}
第二中:适用于表单属性较多的提交环境,此时需要把所有表单属性单独封装到一个javabean中。
!!!注意:前台表单的name属性名务必与javabean的属性名保持一致
(1) public class javabean{
各种表单属性;
各种表单属性的get,set方法
}
(2) 页面代码: <form action="' mehod="" /> 缺点:前台写表单name属性值时要注意加上对象名
// <input name=“对象名.属性名"/> ,如果用于表单属性较少的情况,只会画蛇添
<s:textfiled name="对象名.属性名“/>” 足,增加设计复杂性。
<input type=“submit”/>
</form>
(3). 后台代码:public class xxxx{//仍然以User为例
private User u;
public void add(){
UserDao udao=new UserDaoImpl();
udao.addUser(u)
}
}
第三种:action类实现ModelDriven<T>接口并重写getModel方法
此种方法时对前两种方法的综合设计,既不需要页面表单name属性值写上对象名,
也不需要后台写各种表单属性的set,get方法。
!!!注意:前台表单的name属性名务必与javabean的属性名保持一致
(1) public class javabean{
各种表单属性;
各种表单属性的get,set方法
}
页面代码: <form action="' mehod="" />
// <input name="属性名"/>
<s:textfiled name="属性名“/>”
<input type=“submit”/>
</form>
(3). 后台代码:public class xxxx implements ModelDriven<User> {
//仍然以User为例
private User u;
public void add(){
UserDao udao=new UserDaoImpl();
udao.addUser(u)
}
///从表单提交过来的数据会先经过javabean和getModel方法
if(u!=null){
u=new User();
}
return u;
}
}