strut2接收参数的三种方式(属性驱动\对象驱动\模型驱动)
来源:互联网 发布:北京积分落户 知乎 编辑:程序博客网 时间:2024/06/03 16:28
一.属性驱动
Jsp代码
<body>
<h1>属性驱动</h1>
<form action="${pageContext.request.contextPath}/Demo1Action" method="post">
用户名:<input type="text" name="name" ><br>
年龄:<input type="text" name="age" ><br>
入职日期:<input type="text" name="hireDate" ><br>
<input type="submit" value="提交" ><br>
</form>
</body>
Action代码
//使用Action获得表单提交参数
//1.在Action中准备与参数键相同的属性,并提供相应的set方法,参数值会自动封装到属性中.
//2.封装参数还会帮我们自动类型转换. (8大基本数据类型|指定格式的Date类型)
public class Demo7Action extends ActionSupport {
private static final long serialVersionUID = 1L;
private String name;
private Integer age;
private Date hireDate;
@Override
public String execute() throws Exception {
System.out.println("name:"+name+",age:"+age+",hireDate:"+hireDate);
return SUCCESS;
}
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
public void setHireDate(Date hireDate) {
this.hireDate = hireDate;
}
}
二.对象驱动
Jsp代码
<body>
<h1>对象驱动</h1>
<form action="${pageContext.request.contextPath}/Demo8Action" method="post">
用户名:<input type="text" name="user.name" ><br>
年龄:<input type="text" name="user.age" ><br>
入职日期:<input type="text" name="user.hireDate" ><br>
<input type="submit" value="提交" ><br>
</form>
</body>
Action代码
//使用Action获得表单提交参数
//1 在action中准备对象属性.并提供对象的set/get方法
//2 表单提交的键格式:对象属性名.属性名
public class Demo8Action extends ActionSupport {
private static final long serialVersionUID = 1L;
private User user;
@Override
public String execute() throws Exception {
System.out.println(user);
return SUCCESS;
}
public void setUser(User user) {
this.user = user;
}
public User getUser() {
return user;
}
}
三.模型驱动
Jsp代码
<body>
<h1>模型驱动</h1>
<form action="${pageContext.request.contextPath}/Demo9Action" method="post">
用户名:<input type="text" name="name" ><br>
年龄:<input type="text" name="age" ><br>
入职日期:<input type="text" name="hireDate" ><br>
<input type="submit" value="提交" ><br>
</form>
</body>
Action代码
//使用Action获得表单提交参数
//1 action实现ModelDriven接口.在实现方法中返回封装参数的User对象
//2 表单提交参数时,直接写对象中属性名即可.
public class Demo9Action extends ActionSupport implements ModelDriven<User> {
private static final long serialVersionUID = 1L;
private User user = new User();
public User getModel() {
return user;
}
@Override
public String execute() throws Exception {
System.out.println(user);
return SUCCESS;
}
}
这种方式应该不算是参数封装的方式,但我们很多情况下都用属性驱动的方式接收参数,因为这种方式方便,简洁,易控制。属性驱动在Action中提供与表单字段一一对应的属性,然后一一set赋值,采用属性驱动的方式时,是由每个属性来承载表单的字段值,运转在MVC流程里面。
ModelDrivenAction类的执行流程是:首先调用getModel()方法得到User对象,接着根据JavaBean的原则将客户端传过来的属性,一个一个的set到User对象的属性中,将属性全部set完之后,再执行execute()方法。
到底是用属性驱动和是模型驱动呢?
1)统一整个系统中的Action使用的驱动模型,即要么都是用属性驱动,要么都是用模型驱动。
2)如果你的DB中的持久层的对象与表单中的属性都是一一对应的话,那么就使用模型驱动吧,毕竟看起来代码要整洁得多。
3)如果表单的属性不是一一对应的话,那么就应该使用属性驱动,否则,你的系统就必须提供两个Bean,一个对应表单提交的数据,另一个用与持久层。
- strut2接收参数的三种方式(属性驱动\对象驱动\模型驱动)说明
- strut2接收参数的三种方式(属性驱动\对象驱动\模型驱动)
- Action接收参数的3种方式(属性,域模型,模型驱动,struts2.1.8)
- Action接收参数的3种方式(属性,域模型,模型驱动,struts2.1.8)
- struts2 接受参数的两种方式(属性驱动和模型驱动)
- Struts2中接收表单数据的三种驱动方式
- strut2,模型驱动验证框架
- Struts2的属性驱动与模型驱动
- Struts2的属性驱动和模型驱动
- 属性驱动与模型驱动的比较
- Struts2的属性驱动和模型驱动
- Struts2的模型驱动和属性驱动
- 页面和服务器相互传值的原理(属性驱动,对象驱动,模型驱动,push,put)
- 模型驱动和属性驱动
- 属性驱动和模型驱动
- struts2属性驱动,模型驱动
- Action处理请求参数(属性驱动与模型驱动)
- 注册JDBC驱动的三种方式
- 数组和list的区别
- Callable和Future
- 简单介绍tmc
- 微信支付
- csdn:发表博客
- strut2接收参数的三种方式(属性驱动\对象驱动\模型驱动)
- SpringMVC项目JSP取不到ModelAndView的数据解决
- (C语言)利用结构体数组制作学生成绩管理系统
- lua.c:80:31: fatal error: readline/readline.h: No such file or directory
- 字体使用sp、dp的区别
- 微信公众号开发之获取用户基本信息
- 支持向量机(SVM)
- OneNet学习笔记(二)——OneNet平台初识
- 【P3384】【模板】树链剖分