锁定老帖子 主题:webwork和spring整合
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-11-01
始终没有搞明白在appfuse中是通过什么方式将webwork和spring整合在一起的; 在关于xwork1.x的设想中(W1:Spring Framework Integration)提到过用以下的方式来实现webwork和spring的整合。 webwork.action.factory=webwork.action.factory.SpringActionFactory
方案1: <bean id="myAction" class="com.ryandaigle.web.actions.MyAction" singleton="false"> 你可以将action的声明放在xwork.xml中,而DAO仍旧在applicationContext.xml完成,这样xwork.xml就变成: <action name="myAction" class="com.ryandaigle.web.actions.MyAction"> applicationContext.xml则变成: <bean id="myDAO" class="com.ryandaigle.persistence.MyDAO" singleton="true" /> 请注意在xwork.xml的配置中由external-ref来指向一个由Spring声明的对象;但是要想真正让external-ref生效,还需要好几项工作要做,这里只是给大家一个初步的印象。 首先,下载文件http://www.ryandaigle.com/pebble/images/webwork2-spring.jar并添加到环境变量CLASSPATH中(或直接放在web项目的WEB-INF/lib/下);然后对xwork.xml文件进行修改: <package name="default" extends="webwork-default" 同时在xwork.xml中添加拦截器reference-resolver <interceptors>
<listener> 方案2:SpringObjectFactory <bean name="some-action" class="fully.qualified.class.name" singleton="false"> 可以看到,可以使用Spring的特性来给你的action设置属性等,当然也可以使用Spring的拦截器等 (可以使用不一定等于推荐使用) 注意一定是singleton="false",因为xwork的action是这样要求的. 第二步.在xwork.xml里定义你的action定义 <action name="myAction" class="some-action"> A:修改web.xml <!-- 必须加在 Spring ContextLoaderListener 的后面 --> <bean id="spring-object-factory" class="com.opensymphony.xwork.spring.SpringObjectFactory" 方案3: 最后一种对SpringObjectFactory进行重载的方法是ActionAutowiringInterceptor,通过这种拦截器的方式可以自动根据定义的匹配策略对Action进行匹配。使用这一方法的好处之一就是不用在spring的配置文件里面去声明action。 对xwork.xml配置: <interceptors> 其中拦截器匹配策略autowireStrategy 是可选配置项,如果用户没有对此进行定义系统则默认根据名称进行匹配。 最后别忘记在web.xml中添加如下配置: <!-- 这个是spring的listener,可以改为你的自定义的spring的Listenter -->
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 1599 次