webwork与spring集成的三种方法
来源:互联网 发布:淘宝代购怎么做的 编辑:程序博客网 时间:2024/04/25 16:57
1.External-Ref
这种方法看起来比较烦琐,(这里描述的和spring文档里的有些区别,这种方法可按spring文档里的做法)
第一步:在web.xml里面增加一个listener,如下
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>com.opensymphony.xwork.spring.SpringExternalReferenceResolverSetupListener</listener-class>
</listener>
第二步:在Spring里面配置类似Dao之类的bean,例如
第三步:配置XWork.xml,例如
externalReferenceResolver="com.opensymphony.xwork.spring.SpringExternalReferenceResolver">
<interceptors>
<interceptor name="reference-resolver" class="com.opensymphony.xwork.interceptor.ExternalReferencesInterceptor"/>
<interceptor-stack name="myDefaultWebStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="reference-resolver"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myDefaultWebStack"/>
<action name="myAction" class="com.ryandaigle.web.actions.MyAction">
<external-ref name="DAO">myDAO</external-ref>
<result name="success" type="dispatcher">
<param name="location">/success.jsp</param>
</result>
</action>
</package>
2.SpringObjectFactory
我一直用这种方法,因为以前觉得是xwork本身提供的方法,升级有保障.
配置方法:
第一步.在spring的 applicationContext.xml (根据实际情况决定) 里面定义你的action,例如
<property name="someProperty"><ref bean="someOtherBean"/></property>
</bean>
可以看到,可以使用Spring的特性来给你的action设置属性等,当然也可以使用Spring的拦截器等 (可以使用不一定等于推荐使用)
注意一定是singleton="false",因为xwork的action是这样要求的.
第二步.在xwork.xml里定义你的action定义
<result name="success">view.jsp</result>
</action>
第三步.要使上面的关联生效,还要用我们的SpringObjectFactory来替换Xwork的默认ObjectFactory.
最新的SpringObjectFactory里面,有两种方法,其中我觉得A方法更直观一些.
A:修改web.xml
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 这个必须在 Spring ContextLoaderListener 的后面 -->
<listener>
<listener-class>com.opensymphony.xwork.spring.SpringObjectFactoryListener</listener-class>
</listener>
B.在spring的applicationContext.xml (根据实际情况决定)里面定义一个bean,例如
这样Spring会自动调用initObjectFactory方法来替换Xwork的默认ObjectFactory
3.ActionAutowiringInterceptor
这个方法是最近出现的,可能是最简洁的方法,但是不知道性能上有没有问题,我觉得jdk1.4以后应该没有任何问题吧,至于实际效果你的自己测试一下.
第一步:配置web.xml
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
第二步配置xwork.xml里面的拦截器
<interceptor name="autowire" class="com.opensymphony.xwork.spring.interceptor.ActionAutowiringInterceptor">
<param name="autowireStrategy">@org.springframework.beans.factory.config.AutowireCapableBeanFactory@AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE</param>
</interceptor>
<interceptor-stack name="autowireDefault">
<interceptor-ref="autowire" />
<interceptor-ref="defaultStack" />
</interceptor-stack>
</interceptors>
你的拦截器里都要包含autowire,例如这个autowireDefault就相当于以前的默认的拦截器了.
其中的拦截器策略可以配置,上面配置的是根据类型,如果不配置,默认是根据名字.
一共有四种策略:
AUTOWIRE_CONSTRUCTOR
AUTOWIRE_BY_TYPE
AUTOWIRE_BY_NAME
AUTOWIRE_AUTODETECT
这种方法执行原理就是查找你的action的所有字段,如果和Spring的定义bean有相同的,就自动设置.
假设你的Spring的applicationContext.xml里面有这样一个定义:
如果你在xwork.xml 里面定义的某个action有一个字段叫userManager,那么在运行时刻就会自动被设置为Spring的配置文件里定义的Bean.
- webwork与spring集成的三种方法
- webwork与spring集成的三种方法
- webwork与spring集成的三种方法
- spring webwork 集成 三种方法
- webwork 与 spring 集成的方式
- spring与webwork集成2
- WebWork 2.1 / 2.2 与 Spring 集成方法总结
- spring集成jpa的三种方法
- spring集成jpa的三种方法
- webwork与spring的整合
- webwork与spring的整合
- webwork与spring集成1(没有测试)
- ActiveMQ(实战三) 与spring的集成
- spring与DWR集成的两种方法
- 三种基于过滤器的权限设计:spring AOP、webwork、servlet filter
- spring集成mybatis的三种方式
- spring webwork struts 集成有关注意事项
- Spring与Struts1整合的三种方法总结
- Linux操作系统上如何使用QQ和MSN工具
- 即时通讯无界限 LumaQQ的安装和使用
- A Brief Introduction to IoC
- 如何学习SQL数据库才能成为高手
- 关于完成端口
- webwork与spring集成的三种方法
- 一段点击后使td变颜色的代码
- Delphi入门点点滴滴
- JAVASCRIPT中使用DOM操作XML文档
- Java内部的一些简介
- 应用整合中SSO的技术实现
- JS通用表单验证函数
- SQL 里面如何修改表名
- [求助]关于snort的插件问题