采用DelegatingRequestProcessor将处理转发给Spring容器中的bean
DelegatingRequestProcessor继承自RequestProcessor。为了让Struts使用DelegatingRequestProcessor,还需要在struts-config.xml文件中增加如下代码:
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />
这一行代码是告诉Struts用DelegatingRequestProcessor来代替原来的RequestProcessor。完成设置这个设置后,Struts会将拦截到的用户请求转发到Spring context下的bean,根据bean的name属性来匹配。而Struts中的action配置则无需配置type属性(即使配置了type属性也不起任何作用,
除非在spring的配置文件里找不到对应的name属性值,除非这个条件直到今天才知道。记下来备忘:))。
配置了上面的一行代码后,就可以在Spring的配置文件(可以不是applicationContext.xml,比如假设这里是action-servlet.xml)中配置用来处理请求的Action bean了。配置的时候需要注意的是Action bean不再需要id属性,而要用name替代id属性,这时name属性的值应与struts-config.xml中配置的Action的path属性的值相同。
这样,处理请求的Action就能处于Spring的管理之下了。
分享到:
相关推荐
3. **DelegatingRequestProcessor**:在Struts-Spring整合中,DelegatingRequestProcessor是一个扩展自Struts的DefaultRequestProcessor的类,其主要作用是拦截Struts的请求处理流程,将控制权交给Spring。...
在Spring MVC框架中,`ContextLoaderPlugIn`和`DelegatingRequestProcessor`以及`DelegatingActionProxy`是三个关键组件,它们各自扮演着不同的角色。本文将深入探讨这三个概念,以及在某些情况下,为什么可以不使用...
这种方式适用于Struts 1,DelegatingRequestProcessor是Spring提供的一个处理器,它可以在Struts请求生命周期的早期阶段介入,将请求的处理委托给Spring。我们需要在Struts的配置文件(struts-config.xml)中替换...
从压缩包中列出的文件名"usable"、"DelegatingActionProxy"和"DelegatingRequestProcessor"来看,我们可以推测这部分内容可能涉及了Spring框架中的关键概念和技术。 首先,"usable"可能是指可复用或可操作的组件,...
本文将详细介绍Spring与Struts整合的三种主要方式:使用Spring的`ActionSupport`、使用Spring的`DelegatingRequestProcessor`类以及全权委托方式。 #### 1. 使用Spring的`ActionSupport` 使用Spring的`...
无论是通过`DelegatingActionProxy`、自定义的`MyDelegatingActionProxy`、`DelegatingRequestProcessor`、Spring MVC还是混合使用Spring与Struts,目的都是为了提高开发效率、降低维护成本并增强应用的灵活性和可...
另一种整合方式是通过自定义RequestProcessor,即继承Spring的`DelegatingRequestProcessor`。在`struts-config.xml`中,用`DelegatingRequestProcessor`替换默认的`RequestProcessor`: ```xml ...
- **方法概述**:这种方法主要是通过覆盖 Struts 的默认请求处理器 `RequestProcessor`,使用 Spring 的 `DelegatingRequestProcessor` 来实现 Struts 与 Spring 的整合。`DelegatingRequestProcessor` 能够将请求...
相比之下,使用 `DelegatingRequestProcessor` 或 `AutowiringRequestProcessor`(方法三)能更好地保持 Action 类的独立性,让 Spring 负责管理对象的生命周期和依赖。 在选择整合策略时,需要考虑项目需求、团队...
`DelegatingRequestProcessor`会接管Struts的请求处理流程,并将控制权交给Spring,从而实现Spring对整个请求生命周期的控制。 在`struts-config.xml`中,我们将`RequestProcessor`的class属性设置为`...
DelegatingRequestProcessor允许开发者在Struts的请求处理流程中插入Spring的逻辑,使得在请求处理的早期阶段就可以访问Spring的bean。这种方式使得Spring可以更早地参与到请求的生命周期中,比如在处理请求之前进行...
- **原理**:`DelegatingRequestProcessor`类是Spring提供的一个类,用于替代Struts默认的`ActionServlet`,它将Struts的Action与Spring进行分离,使Struts的Action处于Spring的控制之下。这种方式的最大优点是几乎...
这种方式主要是通过使用Spring提供的`DelegatingRequestProcessor`类来替代Struts默认的`RequestProcessor`,从而实现Spring和Struts的解耦。 ##### 实施步骤 1. **配置Controller和ContextLoaderPlugIn** 在`...
- **原理**:Spring 提供了一个 `DelegatingRequestProcessor` 类,该类可以用来自定义 Struts 的请求处理过程。通过覆盖 Struts 的默认 RequestProcessor,可以在处理请求前或后执行额外的操作。 - **步骤**: - ...
在第二种方式中,我们不再直接在`struts-config.xml`中设置`type`属性为Spring的代理类,而是通过配置`DelegatingRequestProcessor`。在`struts-config.xml`中: ```xml ...
这种方法是替换 Struts 的默认 `RequestProcessor` 为 Spring 提供的 `DelegatingRequestProcessor`,使得 Struts 的 Action 能被 Spring 管理。缺点是需要手动编写自定义的 `RequestProcessor`,增加了集成的工作量...
2. **配置Struts**:在`struts-config.xml`中,设置`DelegatingRequestProcessor`作为Controller处理器,这使得Struts能够委托Spring处理请求。 3. **配置Spring**:在`struts-config.xml`中,添加`...
3. **Struts配置**:在`struts-config.xml`中,需要配置Struts的`DelegatingRequestProcessor`,使其能够将请求转发给Spring处理,并设置消息资源和Spring的`ContextLoaderPlugIn`插件。 ```xml ...
- **解析**:`DelegatingRequestProcessor`是一个特殊的请求处理器,它将控制权委托给Spring进行进一步的处理,使得Struts2能够与Spring框架无缝集成。 2. **ContextLoaderPlugIn**: - **配置示例**: ```xml ...