Struts2-Modeldriven接口用法
来源:互联网 发布:自然语言处理余弦算法 编辑:程序博客网 时间:2024/05/21 10:49
struts2中的Action根据其属性的不同可以分为两类:Filed-Driven Action(属性驱动)和Model-Driven Action(模型驱动).
<1>Field-Driven(属性驱动)Action,Action拥有自己的属性,这些属性一般是Java的基本类型。表单字段直接和Action的属性对应.
<2>Model-Driven Action(模型驱动),在struts2中,提供了一种直接使用领域对象的方式,就是让action实现com.opensymphony.xwork2.ModelDriven接口,ModelDriven让你可以直接操作应用程序中的领域对象,允许你在web层和业务层使用相同的对象.
ModelDriven接口只有一个方法 public Object getModel() { return null; } 该方法返回一个用于接收用户输入数据的对象模型,在这个模型对象中的属性可以直接通过(属性名)来访问,而不需要使用(对象名.属性名)这种格式来访问了,在action里也不需要对对象提供getter和setter方法了,但是必须要在action中进行new操作.
具体代码如下:
public class UserAction extends ActionSupport implements ModelDriven<User>
{
private User user=new User();public User getModel() { return user;}private UserService userService;public void setUserService(UserService userService) { this.userService = userService;}/** * 注册功能 * @return */public String regist(){ //接收请求参数 userService.save(user); return LOGIN;}
Filed-Driven Action和Model-Driven Action的区别:
(1)模型驱动的Action必须实现ModelDriven接口,而且要提供相应的泛型
(2)实现ModelDriven的getModel方法,其实就是简单的返回泛型的一个对象
(3)在Action提供一个泛型的私有对象,就是定义一个对象,并提供相应的getter与setter。
到底是用属性驱动和是模型驱动呢?
(1)请统一整个系统中的Action使用的驱动模型,即要么都是用属性驱动,要么都是用模型驱动。
(2)如果你的DB中的持久层的对象与表单中的属性都是一一对应的话,建议使用模型驱动,这样看起来代码会整洁.
(3)如果表单的属性不是一一对应的话,那么就应该使用属性驱动,否则,系统就必须提供两个Bean,一个对应表单提交的数据,另一个用与持久层。
- Struts2-Modeldriven接口用法
- Struts2-Modeldriven接口用法
- Struts2-Modeldriven接口用法
- struts2的ModelDriven接口
- Struts2之ModelDriven用法
- Struts2接口之ModelDriven分析
- struts2的ModelDriven接口(部分代码)
- struts2的ModelDriven用法以及思想
- struts2 ModelDriven
- struts2--ModelDriven
- Struts2--ModelDriven
- struts2 modeldriven
- ModelDriven接口
- Struts2继承RequestAware,SessionAware,ApplicationAware,ModelDriven,Preparable等接口
- Struts2的学习(3)-ModelDriven接口的应用
- Struts2之ModelDriven接口实现登陆及退出
- Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法
- Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法
- 使用hash法高效替换多个字符
- 用Python实现几个简单的图片特效
- LINUX应用调试2:GDB调试应用程序
- 牛刀小试
- 根据四个特征点求解相机位姿
- Struts2-Modeldriven接口用法
- 前端通用编码规范
- html中列表前的序号用带圆圈的数字表示及存在的问题
- 什么是数据库连接池?怎么配置tomcat的数据库连接池?
- 01-复杂度2 Maximum Subsequence Sum (25分)
- HDU 4569 Special equations(思维)——2013 ACM-ICPC长沙赛区全国邀请赛
- cef AutomatedBuildSetup
- [leetcode]598. Range Addition II
- 深入理解javascript原型和闭包(9)——简述【执行上下文】下