- 浏览: 698386 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (362)
- java基础 (33)
- html/css+div/javascript (17)
- Ajax/XML/JSON/XSL (7)
- JQuery (11)
- Extjs (1)
- JSP/Servlet (19)
- MVC模式 (4)
- struts 1 (17)
- Struts 2.3.4 (17)
- Spring 3.2 (26)
- Springmvc (3)
- Hibernate 4.1 (21)
- ibatis (6)
- Velocity模板语言 (2)
- Rose框架 (5)
- EJB (1)
- JUnit测试 (2)
- 数据库DB (24)
- 重构 / 设计模式 (3)
- 开发工具IDE (37)
- 数据结构与算法设计 (3)
- Android (12)
- Linux (4)
- bug集合 (29)
- 缓存技术(redis) (3)
- Lucene全文索引 (15)
- maven3.0.5 (4)
- 小工具集合 (18)
- 面试题 (5)
- 闲聊 (11)
- 其他 (4)
- 接口API (2)
- work (2)
- Flex (0)
- JMS (1)
- 开源项目集合 (1)
- 技术博客 (1)
- 分类04 (0)
- 分类05555 (0)
最新评论
-
小小小羊:
好屌...
java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$Refle -
liubinli2005:
这个可以脱底spring。单独使用吗?
DAO层:jade -
cangbaotu:
我觉得对于开发者来说,能脚本化编写爬虫是一件挺开心的事情( ̄▽ ...
网页爬取 -
asjava:
很好的文章, 但每段代码清单都重复了一次.
spring 事务 -
xia635317478:
jethypc 写道验证码的session无法传过去啊 还是我 ...
登陆验证码(struts2实现)
DelegatingActionProxy
org.springframework.web.struts.DelegatingActionProxy
在目录spring-framework-2.5.4\dist\modules下的spring-webmvc-struts.jar
如何将Struts1.x和spring整合在一起,让spring去管理struts中的Action实例,action里面属性的注入?
必看:http://www.iteye.com/topic/18348
http://java.chinaitlab.com/Struts/767495_3.html
1.在web.xml加入:
<context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath*:spring/core/applicationContext.xml </param-value> </context-param>
2.修改struts-config.xml中action节点的配置信息,将原来定义的
<action path="/validateUser"
type="com.wuwei.struts.action.ValidateUserAction" name="userForm">
<forward name="success" path="/success.jsp"></forward>
<forward name="fail" path="/fail.jsp"></forward>
</action>
中的type改为: type="org.springframework.web.struts.DelegatingActionProxy">或者你也可以不改,而在<plug-in>标签前加入如下定义
<!-- 加上controller就不用再配置action的type属性了/或者说type属性不用改为
type="org.springframework.web.struts.DelegatingActionProxy" -->
<controller
processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
</controller>
3.在applicationContext.xml中为ValidateUserAction添加定义,将userDao的实例化加给Spring,这也是Spring中的依赖注入
<!-- Struts -->
<bean name="/validateUser"
class="com.wuwei.struts.action.ValidateUserAction">
<property name="userDAO" ref="userDao"/>
</bean>
当然,这里ref(引用)的Bean userDao也是在applicationContext.xml中己定义好的
<!-- 通过HibernateDaoSupport来操作数据库,需要植入sessionFactory
UserDao继承自HibernateDaoSupport
-->
<bean id="userDao" class="com.wuwei.struts.dao.UserDAO">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
二、使用 DelegatingActionProxy
使用 DelegatingRequestProcesso 非常简单方便,但有一个缺点:RequestProcessor 是Struts 的一个扩展点,也许应用程序本身就需要扩展RequestProcessor ,而DelegatingRequest Processor 已经使用了这个扩展点。
为了重新利用 Struts 的 RequestProcessor 这个扩展点,有以下两个方法:使应用程序的 RequestProcessor 不再继承 Struts 的 RequestProcessor ,改为继承DelegatingRequestProcessor 。
使用 DelegatingActionProxy。
前者常常有一些未知的风险,而后者是 Spring 推荐的整合策略。使用 DelegatingActionProxy 与DelegatingRequestProcessor 的目的只有一个,都是将请求转发给 Spring管理的 bean。
DelegatingRequestProcessor 可直接替换了原有的 RequestProcessor,并在请求转发给action 之前,转发给 Spring 管理的 bean; 而 DelegatingActionProxy 则被配置成 Struts 的action,即所有的请求先被 ActionServlet拦截,然后将请求转发到对应的 action,而 action的实现类全都是 DelegatingActionProxy; 最后由 DelegatingActionProxy 将请求转发给Spring 容器的 bean(真正的处理类action)。
这个bean可以配置在applicationContext.xml中,也可以将它从里面抽取出来,配置在专门的applicationContext-action.xml中,并在applicationContext.xml里面配置该文件名的映射路径。 <bean name="/datadictAdmin" class="com.lenovo.platform.admin.web.action.DatadictAdminAction"> <property name="datadictService" ref="datadictService" /> </bean>
可以看出:使用 DelegatingActionProxy 比使用 DelegatingRequestProcessor 要晚一步转发到 Spring 的 contexto 但通过这种方式可以避免占用扩展点。与使用 DelegatingRequestProcessor 对比,使用 DelegatingActionProxy 仅需要去掉controller 配置元素,并将所有的 action 实现类改为 DelegatingActionProxy 即可。
发表评论
-
spring 事务
2014-03-31 11:14 3441Spring 事务异常回滚 ... -
Spring定时器(Quartz)
2013-08-20 22:54 2804Spring定时器(Quartz) 1. ... -
模拟Spring的 IOC 和 DI
2013-08-15 21:42 1135模拟Spring的 IOC 和 DI 1.BeanFactor ... -
spring任务调度
2013-07-18 17:10 1026spring任务调度 1,一个job对应一个处理类(bean ... -
获取ApplicationContext对象的几种方法
2013-01-29 10:47 5579方法一:在初始化时保 ... -
Spring 如何读取properties文件
2013-01-28 16:29 1537Spring 如何读取properties文件 ------ ... -
springSecurity的登录验证
2013-01-27 20:57 2451springSecurity的登录验证 一、Springse ... -
Spring事务配置的五种方式
2013-01-11 15:10 1034Spring事务配置的五种方式 参考1:http://w ... -
ehcache缓存的使用
2013-01-11 15:10 1022ehcache缓存的使用 1.ehcache缓存介绍:h ... -
在spring中如何处理oracle大字段
2013-01-10 12:45 1414在spring中如何处理oracle大字段 在spring ... -
spring事务管理
2012-12-06 14:34 668spring管理事务提交 http: ... -
spring中配置log4j
2012-11-10 16:30 1644log4j 和 slf4j slf4j和log4j用于做日志 ... -
spring每个包的详解
2012-11-09 16:53 963spring每个包的详解 spring.jar 是包含有完 ... -
当Spring管理Struts2时配置的scope="prototype"
2012-11-05 10:36 1086Spring scope="prototype&q ... -
web.xml配置加载spring
2012-11-05 10:36 1019web.xml配置加载spring 第一种加载applica ... -
Spring中配置数据源
2012-11-04 20:08 1047Spring中配置数据源 ... -
Spring IOC实例化了哪些对象
2012-10-30 09:25 1438Spring IOC实例化了哪些对象 启动servlet容 ... -
<aop:pointcut />
2012-10-29 17:00 1014<aop:config> <aop:po ... -
SSH项目解决乱码问题
2012-10-10 17:55 1209SSH解决乱码问题 第一种:利用spring的filte ... -
sping学习
2012-10-10 17:43 982spring知识点学习 、
相关推荐
在这个场景中,我们关注的是SSH中的Struts框架和SSH集成代理1.2版的第二种搭配方式,以及如何在`struts.xml`配置文件中使用`DelegatingActionProxy`代理。 首先,让我们深入理解SSH框架的各自职责。Spring框架作为...
"Struts_Spring框架整合DelegatingActionProxy"这个主题,就是关于如何将这两个框架进行集成,以优化Java Web应用程序的架构。 DelegatingActionProxy是Spring的一个组件,它在Struts与Spring的整合中扮演了重要...
在Struts2中,DelegatingActionProxy是Action代理的一种实现,它主要用于动态地加载和调用实际的Action类,实现了Action的AOP(面向切面编程)功能,如权限控制、异常处理等。DelegatingActionProxy在运行时根据配置...
DelegatingActionProxy的作用是作为Struts1 Action的代理,它将Struts1的Action实例化工作交给了Spring。这样,我们在配置文件中可以声明Action的Bean,Spring会在需要时自动创建并管理这些Bean。 整合步骤大致如下...
在这个主题中,我们将深入探讨SSH集成代理1.2版的第一种方法以及如何与`struts.xml`中的`DelegatingActionProxy`代理进行配合。 **Spring框架**是依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-...
在Spring MVC框架中,`ContextLoaderPlugIn`和`DelegatingRequestProcessor`以及`DelegatingActionProxy`是三个关键组件,它们各自扮演着不同的角色。本文将深入探讨这三个概念,以及在某些情况下,为什么可以不使用...
在Struts配置文件中,通过指定`type`为`org.springframework.web.struts.DelegatingActionProxy`,并在Spring的配置文件中定义对应的Action Bean,这样就可以实现Struts和Spring之间的通信。 ### 第二种方式:...
从压缩包中列出的文件名"usable"、"DelegatingActionProxy"和"DelegatingRequestProcessor"来看,我们可以推测这部分内容可能涉及了Spring框架中的关键概念和技术。 首先,"usable"可能是指可复用或可操作的组件,...
Struts2是一个流行的Java web框架,它为开发者提供了一种优雅的方式来构建可维护、结构清晰的Web应用程序。... ...例如: ... ...当用户提交表单时,服务器端的Servlet(通常是Struts2的Action)接收到请求。...
在Spring与Struts框架的整合中,通过修改`Struts-config.xml`、`applicationContext.xml`以及使用`DelegatingActionProxy`,可以实现Struts Action与Spring管理的bean之间的无缝集成。这种整合方式充分利用了Spring...
3. **使用DelegatingActionProxy代理Action**:在`struts-config.xml`中,所有Action的type属性改为`DelegatingActionProxy`,而非具体类名,然后在Spring配置文件中定义对应的bean。这是最灵活的整合方式,因为它...
<action path="/somepath" type="org.springframework.web.struts.DelegatingActionProxy" /> ``` - 配置监听器(可选): 如果不希望在`struts-config.xml`中配置`ContextLoaderPlugIn`插件,可以在`web.xml`...
<bean id="delegatingActionProxy" class="org.springframework.web.struts.DelegatingActionProxy"> ``` 其中: - `targetBeanName`: 指向Spring容器中定义的服务Bean名称。 - `targetMethod`: 指向服务Bean...
这种方式更为灵活,Action 对象由 Spring 创建并管理,Struts 通过代理对象(`DelegatingActionProxy`)调用 Action。Action 无需继承任何特定的类,可以完全解耦合。这是 Spring-Struts2 整合的常见方式,适用于 ...
3. **通过Spring的DelegatingActionProxy类** 接下来我们将分别详细介绍这三种方法的具体实施步骤及其优缺点。 #### 二、通过Spring的ActionSupport类 这种方式是通过让Action类继承Spring的`ActionSupport`类来...
<action attribute="loginForm" input="/login.jsp" name="loginForm" path="/login" scope="request" type="org.springframework.web.struts.DelegatingActionProxy" /> ``` 这意味着当Struts接收到`/login`路径...
原本直接指定Action类的类型,现在需要改为`DelegatingActionProxy`,这是一个Spring提供的代理类,它会根据Spring配置文件来创建和管理Action实例。例如: ```xml <!-- 原始的Action定义 --> <!-- 修改后的...
org.springframework.web.struts.DelegatingActionProxy.class org.springframework.web.struts.DelegatingActionUtils.class org.springframework.web.struts.DelegatingRequestProcessor.class org.spring...
同时,在`struts-config.xml`中,每个Action的配置应该包含一个`method`参数,以及`DelegatingActionProxy`类型: ```xml <action path="/yourAction" type="org.springframework.web.struts.DelegatingActionProxy...
- 第二种方法是使用`DelegatingActionProxy`,不配置controller节点,而是改变Action的type属性为`DelegatingActionProxy`,然后在Spring配置文件中进行依赖注入。 - 第三种方法是Action直接获取Spring的IOC容器...