实现这两个接口ModelDriven<T>,Preparable有什么用?
来源:互联网 发布:电脑查ip地址mac地址 编辑:程序博客网 时间:2024/05/17 00:15
实现了ModelDriven就必须实现getModel这个方法,该方法返回的是你的ModelDrivern泛型中设定的实体类。其实是为了实现代码的重用,不要再定义一次你在数据访问层定义的属性了,直接用那个类就行了。不过有时候也不是很需要这个东西,比如只有一两个表单域的时候。
Struts2的Action在实现com.opensymphony.xwork2.Preparable接口后,就可以重写prepare()方法,此时在Action中,prepare()方法的执行点是在:setXxx()和execute()的执行之前。如果action针对每次请求都要执行一些相同的业务逻辑, 那么可以实现Preparable接口, 将预处理业务逻辑写在prepare()方法里。
比如需求:
在执行Action的方法前,接收前台隐藏域传过来的值,再根据该值执行相应逻辑,如前台传过来ID,我们根据ID查找数据库对应的用户信息,再跳转到modify()中修改信息,但实际的运行过程中发现,通过Debug断点调试得知prepare()方法接收到的ID值是零,即前台隐藏域中的ID值没有传过来。
事实上问题就出在默认的defaultStack拦截器栈上。其实defaultStack无法接收prepare()需要的数据,而应借助paramsPrepareParamsStack拦截器栈,事实上使用prepare拦截器之前,应先调用params拦截器,prepare()才能接收到表单数据。基于这个思路,于是可以通过各种手段将params拦截器放置在prepare拦截器之前即可。比如将defaultStack中的所有拦截器拷贝到struts.xml的我们自定义的myStack拦截器栈中,再按照paramsPrepareParamsStack拦截器栈中的params和prepare顺序修改二者位置即可。
0 0
- 实现这两个接口ModelDriven<T>,Preparable有什么用?
- struts中的接口RequestAware, ModelDriven<?>, Preparable
- struts2实现Preparable接口
- Struts2继承RequestAware,SessionAware,ApplicationAware,ModelDriven,Preparable等接口
- Struts2 Preparable与ModelDriven
- ModelDriven和Preparable
- struts2的ModelDriven接口和Preparable接口的机制和作用
- Struts2-源码阅读-ModelDriven-Preparable
- ValueStack、Preparable、ModelDriven的关系
- struts2中action实现Preparable接口
- Struts2 的 Preparable, ModelDriven 接口方法里无法获得参数,理解 拦截器与责任链
- Struts2中action接收参数的DomainModel、ModelDriven以及Preparable接口
- 接口有什么用?
- 实现ModelDriven接口的好处
- 两个太阳有什么用!
- [Struts2] ModelDriven和Preparable拦截器
- ModelDriven<T>
- 接口到底有什么用?
- KMP 算法模板
- 数据结构-树状数组讲解
- HDU 1754 线段树(单点更新)
- QQ截图
- Http错误代码总结
- 实现这两个接口ModelDriven<T>,Preparable有什么用?
- C/C++宏定义的可变参数
- Oracle 系统表
- 说一下积性函数咯(更新中).
- STM32F103RCT6 LED灯程序设计
- POJ 3169 Layout
- IOS中,Button的currentTitle和titleLabel.text的使用
- hadoop 学习笔记:mapreduce框架详解
- 正式赛-ZZULIOJ-1881-蛤玮的机房(并查集)