struts2 的action 是没有scope的,但通过引用spring bean 可以达到有scope功能。
<action name="xxxAction" class="xxxBean">
<result name="success" >/success.jsp</result>
</action>
xxxBean是在spring中配置的session作用域的bean.
@Service(value = "xxxBean")
@Scope(value = "session")
public class XxxAction {
...
}
想把action放到session作用域(因为一些特殊操作传参等),但所有action都放到session会头大的!!
经过测试发现一个办法,就是把不用的xxxAction在适当的时候从session当中清除掉,这样再下次使用(没有关闭窗口的情况)的时候会再次创建xxxBean。
现在的难点在于什么时候清除比较合适,一般一个action都是负责一个功能,比如用户的增、删、改查等,不会涉及到其他对象,采购单的增、删、改、查。这样就可以在通过菜单切换功能(从用户界面切到采购单界面)的时候将刚刚使用的用户的action从session当中清除。
基于这样的思路,使用struts2 的拦截器(Interceptor)来监听特定的action,在菜单切换的时候从session中清除不用的action。
欢迎提出各种看法!
分享到:
相关推荐
在Spring的配置文件中定义bean,标记为`prototype`作用域,以便每次请求都能创建新的实例。 5. **Action类的注入** 在Action类中,可以使用@Autowired注解进行依赖注入,或者在Spring配置文件中声明并配置需要注入...
3. **Bean管理**:Spring容器管理Bean的生命周期,包括初始化、配置、装配以及销毁,提供了单例、原型等多种bean作用域。 4. **数据访问**:Spring对各种持久化技术如JDBC、Hibernate、MyBatis等提供支持,简化了...
这种作用域适合需要保持会话状态的 Bean,例如 Struts 的 Action。 Bean 的生命周期 Bean 的生命周期是指 Bean 实例的创建、初始化、使用和销毁的过程。在 Spring 中,Bean 的生命周期主要包括以下几个阶段: 1. ...
而第二种方法中,Action的生命周期由Struts2管理,通常设置为singleton作用域,但也可以通过插件配置为prototype。 通过这种方式,Spring可以负责对象的依赖注入和管理,而Struts2则专注于处理HTTP请求和视图展示,...
3. **共享Session作用域**:在整合后,Struts2和Spring可以共享Session作用域的对象,使得状态管理更为便捷。 4. **事务管理**:Spring的声明式事务管理可以覆盖Struts2的Action方法,确保数据的一致性。 5. **...
通过以上步骤,你可以了解如何在MyEclipse5.5GA环境中完成Struts2与Spring2的整合。尽管这个过程可能有些复杂,但一旦完成,你将获得一个强大而灵活的Web应用框架。记住,实践是检验真理的唯一标准,多动手尝试,...
4. 在Spring配置文件中定义Action类Bean,并设置为原型(prototype)作用域。 5. 配置Hibernate的SessionFactory和DataSource。 在实际开发中,我们通常按照数据库层(POJO和Hibernate映射)、数据访问层(DAO)、...
这意味着Action Bean的ID被更改为Name,其Class和作用域也在Spring的配置中定义,通常作用域设置为`prototype`,以便每次请求都能创建一个新的Action实例。 #### 3. Spring配置深入 Spring的配置文件负责管理Bean...
6. **模型驱动(ModelDriven)**:在Struts中,ModelDriven接口可以简化Action类的设计,将业务模型直接绑定到请求作用域。在Spring整合中,ModelDriven接口可以与Spring的Model对象相结合,提供更好的数据管理。 7...
在企业级应用开发中,Java 是一种广泛使用的编程语言,特别是在Spring框架的支持下,能够构建高效、可扩展的系统。Spring框架的核心特性之一是...选择正确的Bean作用域是实现高效且健壮的企业级应用开发的关键步骤。
- **Action类改造**:将Action类变为Spring的管理Bean,通常标记为`prototype`作用域,因为每个请求可能需要一个新的实例。 5. **Spring管理Struts的Action** 在Spring配置文件中,声明Struts Action为Bean,并...
- **配置文件**:创建或编辑Spring的配置文件`applicationContext.xml`,其中定义了Bean的作用域、生命周期、依赖关系等。 - **集成Struts和Hibernate**:通过Spring的配置来整合Struts和Hibernate,实现两者之间的...
在Hibernate中,所有的持久化操作(查询、保存、更新、删除)都必须在一个事务内完成,并且这些操作是在Session的作用域内进行的。 4. **Transaction**:Hibernate通过Transaction接口提供了一种机制来管理数据库...
对于每个Action,其作用域(scope)通常被设定为`prototype`,这意味着每次请求都会创建一个新的Action实例,这有助于避免线程安全问题,同时可以更好地利用Spring的依赖注入特性。例如: ```xml <action name=...
②把action交给spring管理,即在spring配置文件中定义action Bean并使用依赖注入功能在action中注入业务Bean,同时修改作用域。 ③在struts.xml中的class使用第②步中所定义的action Bean 的id属性值。
由于Struts2中的Action对象是针对每个请求生成一个新的实例,而Spring默认使用`singleton`作用域来管理Bean。为了与Struts2保持一致,需要将Action的Scope设置为`prototype`或`session`。 - **`prototype`**:为每...
Action 类通常需要标记为 `prototype` 或 `singleton` 作用域,以便 Spring 可以管理其生命周期。 4. **配置 Struts 动作映射**: - 在 Struts 的动作映射配置中,不再直接定义 Action 类的全限定名,而是使用 ...
1. **applicationContext.xml**:这是Spring的核心配置文件,用于定义Bean的定义,包括它们的依赖关系、初始化参数、作用域等。在这里,可能会配置Spring的DataSource、SessionFactory(Hibernate的配置)、Service...
每个框架都有其特定的作用域和配置方式,合理地结合这些框架能够极大地提升Web应用的开发效率和质量。开发者需要根据具体的应用场景灵活调整配置文件中的参数设置,确保各个框架之间的兼容性和稳定性。此外,在实际...
Spring2.0中文帮助文档.chm可能涵盖了Spring的核心模块,如IoC容器、AOP原理、Bean的生命周期和作用域、数据源配置、DAO支持和Spring MVC的配置与使用。Spring的注解驱动开发、Spring Security和Spring Boot等内容也...