`
zhou568xiao
  • 浏览: 96201 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

Struts2+hibernate+spring 配置文件中scope="prototype"的作用

阅读更多
下面是struts2+hibernate+spring配置文件的一部分,以前都是仿造已经写好的bean的配置。有一次 scope="prototype"忘记写了结果出了问题
项目中对一个表的增删该操作是用一个action,这个action有add,update,delete,save这些方法,添加和修改是共用一个页面,当页面得到id时代表进行的修改操作,反之是添加操作。因为在配置spring的bean是忘了写scope="prototype"所以每次添加时都显示最后一次访问过的记录
找了很长时间,原来是spring bean出了问题。 scope="prototype" 会在该类型的对象被请求时创建一个新的action对象。如果没有配置scope=prototype则添加的时候不会新建一个action,他任然会保留上次访问的过记录的信息。
<bean id="assetAction" class="com.servicezone.itsd.asset.webapp.action.AssetAction" scope="prototype">
<property name="assetManager" ref="assetManager"/>
<property name="itProductManager" ref="itProductManager"/>
<property name="vendorManager" ref="vendorManager"/>
<property name="deptManager" ref="deptManager"/>
<property name="userManager" ref="userManager"/>
<property name="assetTypeManager" ref="assetTypeManager"/>
    </bean>[/size][/size][/size][size=medium][/size]
分享到:
评论
5 楼 rskyz520 2010-08-11  
定。我也是这个问题。。支持。。
4 楼 javaheqiang 2009-05-12  
我也是啊。整了半天  就是这个配置问题。
  scope="prototype"表示新建一个Action。
3 楼 kane82 2009-04-08  
2 楼 taeki 2009-01-21  
我就是犯了这个不易察觉的错误,导致浪费了很多时间,最后用了一个很笨很不好的方法解决了,就是在方法后面把上次的东西弄为null。
后来才发现这是由于没有设scope="prototype"引起的。
1 楼 aixia20082003 2008-12-19  

相关推荐

Global site tag (gtag.js) - Google Analytics