struts2 的action的生命周期
来源:互联网 发布:约翰威廉姆斯配乐知乎 编辑:程序博客网 时间:2024/06/05 00:45
struts2 的action的生命周期
(转自:http://blog.sina.com.cn/s/blog_67050d610100qcju.html)
最近做的项目,发现一个很奇怪的问题,action1和action2有同样的属性接受页面传来的值,Action1跳到jsp显示一些内容,再通过form跳转到Action2,可是在action2中那个属性在jsp中根本不存在,但它确有值,我查了一下,应该是action的生命周期的问题,于是我上网搜一下,一下是原文
########################################################################
有很多人问Struts2.0中的对象既然都是线程安全的,都不是单例模式,那么它究竟何时创建,何时销毁呢?
这个和struts2.0中的配置有关,我们来看struts.properties
### if specified, the default object factory can be overridden here
### Note: short-hand notation is supported in some cases, such as "spring"
###
struts.objectFactory = spring
如果我们使用的是com.opensymphony.xwork2.ObjectFactory ,老实说,我也没有研究过,xwork有一套像spring一样的IOC机制,小巧而简洁,有兴趣的朋友可以去研究下。struts2.0中的Action默认就是使用这种工厂模式的,我们来看
class属性必须写类的全名,通过这种方式配置后,action对象的生命周期到底怎么样,你就认命吧,反正你就记住xwork有一个对象池,它会自己分配的,应对每次客户端的请求,它都会创建一个新的实例,至于这个实例何时销毁,由XWORK来控制。
接下来,我们用spring来控制action的生命周期,关于action和spring的集成,我这里就不累述了。
这里的class是spring配置文件中bean的id
我们来看看spring文档中关于生命周期这个章节
Table 3.4. Bean scopes
Scope Description
singleton
prototype
request
session
global session
是不是一目了然?
当然我们要使用request、session等,必须在web.xml中配置
<web-app>
</web-app>
准备好这些之后,我们来对request这个scope进行下测试
<beans>
</beans>
配置好后,发现每次刷新页面,都会建立一个新的实例,运行完后就销毁这个实例,这个效果和默认的是一样的,只是我们这个运行完后会立即销毁,而默认的不是立即销毁,由xwork优化销毁
如果设置为session,其实相当于ejb中的状态bean,对于每个session来说用的都是同一个实例,当然,一旦把浏览器关闭,或者超时,对象就会销亡。
##########################################################################################
问题搞定了
- struts2 的action的生命周期
- Struts2的Action之生命周期
- struts2+spring中action的生命周期问题
- struts2+spring中action的生命周期问题
- Struts2的Action的生命周期:struts2为每一个请求重新初始化一个action的实例。
- struts2.0中Action的对象生命周期详解!!
- Action的生命周期
- Action的生命周期
- Action的生命周期
- SSH:Could not find action or result提及struts2+spring整合中action的生命周期
- struts2 Action生命周期
- Struts2的Action
- struts2的action基础
- Struts2的Action(上)
- Struts2的Action(下)
- Struts2的Action
- STRUTS2的Action配置
- Struts2 的 Action
- MyEclipse8.5优化
- cocos2d-x 图片平铺
- VC中的CEDIT class 自动滚动到最后一行
- 我的程序员之路(2)----关于好心朋友的评论让我有压力
- get cpu information by standard modules
- struts2 的action的生命周期
- 排序 问题
- NYOJ 214 单调递增子序列(二)
- poj2549 枚举+二分
- AS3 中,Function.apply、call中第一个参数的作用;与什么时候用;
- CSDN博客积分的一些想法
- Problem C
- 杂记_Browser
- 使用GDI+画曲线