sping+struts2中配置Action的bean中scope="prototype"的作用
昨天发了一篇文章《奇妙的paramsPrepareParamsStack——Struts2中ModelDriven问题》其实那也不是原因是根本,那个解决方法还是一样如我前面采用的方法:在每次转向之前把对象清空然后初始化一下。只是昨天是在每次调用方法之前在值注入之前先清空初始化了一下。
发现自己在开发中就如田埂上突然冒出个洞,田埂上的田里的水流入我的田里,可我根本不去查明到底是老鼠,蛇还是其他虫子打的洞,而是发现一个洞补一个洞的做法。——真是大忌啊!
今天又搜索了一下才发现原来是这个问题:
下面是struts2+hibernate+spring配置文件的一部分,以前都是仿造已经写好的bean的配置。有一次 scope="prototype"忘记写了结果出了问题 ,其默认是scope="singleton",唯一的。
项目中对一个表的增删该操作是用一个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>
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/foamflower/archive/2009/07/08/4329989.aspx
分享到:
相关推荐
【标题】"eclipse + struts2+sping + bootstrap+juqery-ui整合源码"涉及的关键技术栈包括Eclipse开发环境、Struts2框架、Spring框架、Bootstrap前端库以及jQuery UI组件库。这些技术在Java Web开发中占据着重要地位...
- 在`struts.xml`中,将Action的Class属性修改为Spring的Bean名称,利用Spring的IOC特性实现Action的实例化和依赖注入。 ##### 第三部分:Hibernate与Spring进行整合 **Step11:引入Hibernate框架** - 添加...
Spring、Hibernate和Struts是Java开发中的三大核心技术,它们各自负责不同的职责,共同构建了企业级Web应用的基础架构。Spring作为一个全面的框架,提供依赖注入(DI)和面向切面编程(AOP),使得代码更加模块化...
Spring、Struts和Hibernate是Java开发中非常经典的三大框架,它们各自在应用程序的不同层次上发挥作用,共同构建了一个强大的企业级应用开发解决方案。Spring是全面的轻量级应用框架,Struts是一个MVC(Model-View-...
struts+sping+hibernate
在IT行业中,Spring、Hibernate和Struts2是三个非常重要的框架,它们构成了经典的Java Web开发栈,被广泛用于实现Web应用程序的"增删改查"(CRUD)操作。在这个项目中,"北大青鸟"可能是一个教育机构,它可能在教授...
Struts2、MyBatis和Spring是Java Web开发中常用的三大框架,它们组合起来可以构建出高效、可维护的Web应用程序。在这个实例中,我们主要关注的是如何在Struts2框架下实现文件上传功能,并结合MyBatis进行数据持久化...
struts+sping+hibernate
struts+sping+hibernate
struts+sping+hibernate
Struts+sping+Hibernate
在本项目中,Struts可能起到以下作用: 1. **请求调度**:接收HTTP请求,根据Action配置将请求转发到相应的业务逻辑处理。 2. **视图管理**:Struts能够生成动态HTML页面,展示文件管理的结果。 3. **表单验证**:...
struts+sping+hibernate qq群72861940
struts+sping+hibernate qq群72861940
struts+sping+hibernate qq群72861940
struts+sping+hibernate qq群72861940
struts+sping+hibernate qq群72861940
struts+sping+hibernate qq群72861940
标题 "sping4+struts2+mybatis 的jar包" 描述了这个压缩包包含的是用于构建Java Web应用程序的核心库,主要涉及Spring框架的第四个版本(Spring 4)、Struts2框架以及MyBatis持久层框架。这些组件协同工作,能够帮助...
在整合中,Spring可以管理所有Bean的生命周期,包括Struts2的Action和MyBatis的SqlSessionFactory。此外,Spring的AOP特性可以用于实现全局事务控制,确保多操作一致性。Spring还提供了数据源配置,使得与数据库的...