论坛首页 Java企业应用论坛

怎样结合struts+spring才是合理的了?

浏览 29258 次
该帖已经被评为良好帖
作者 正文
   发表时间:2006-10-13  
Readonly 写道
check out

http://static.springframework.org/spring/docs/2.0.x/api/org/springframework/web/struts/AutowiringRequestProcessor.html


AutowiringRequestProcessor 不错,将Spring 与 Struts的关联 从by Path 转为by Class了,对重构来讲方便了。

但是有个问题,我的crud管理模块是用了通配符的,而且路径名是小写的,没办法通配一个大写的类名,怎么办?

 <action-mappings>
        <!--使用通配符,对/admin/book 与 /admin/order进行批量配置-->
        <action path="/admin/*" name="{1}Form" parameter="method" scope="request" validate="false">
            <forward name="list" path="/WEB-INF/pages/admin/{1}List.jsp"/>
            <forward name="edit" path="/WEB-INF/pages/admin/{1}Form.jsp"/>
           <forward name="success" path="/admin/{1}.do?method=list" redirect="true"/>
        </action>
    </action-mappings>


路径是/admin/book, 类名是XXX.XX.BookAction, 有办法作大小写转换么?

0 请登录后投票
   发表时间:2006-10-13  
galaxystar 写道
plugin,不知道有谁研究过这个!有什么好处,坏处!?


关于运用Spring来管理Struts的Action,IBM的developerworks有一篇很好的文章:
http://www-128.ibm.com/developerworks/java/library/j-sr2.html

其中列举了3种方法,都用到org.springframework.web.struts.ContextLoaderPlugIn。

不过当时的Spring里面还没有 AutowiringRequestProcessor ,他文章中的配置和代码都是运用到了 DelegatingRequestProcessor 。
0 请登录后投票
   发表时间:2006-12-24  
楼上没有理解楼主的意思,这个问题其实在prospring中阐述的挺清楚的,我们公司现在是用getBean,从易用性上来讲,依赖查找不比依赖注入麻烦多少,只不过大家对依赖查找都比较忌讳,如果将struts的action交给spring管理也无不可,只是配置起来麻烦一点,如果让我选择我还是会选择getBean,够简单,呵呵
0 请登录后投票
   发表时间:2006-12-27  
Allen 写道
galaxystar 写道
plugin,不知道有谁研究过这个!有什么好处,坏处!?


关于运用Spring来管理Struts的Action,IBM的developerworks有一篇很好的文章:
http://www-128.ibm.com/developerworks/java/library/j-sr2.html

其中列举了3种方法,都用到org.springframework.web.struts.ContextLoaderPlugIn。

不过当时的Spring里面还没有 AutowiringRequestProcessor ,他文章中的配置和代码都是运用到了 DelegatingRequestProcessor 。


IBM developerworks的文章不错,写得很清楚
0 请登录后投票
   发表时间:2006-12-31  
在项目中的使用方法:
1.在Struts配置文件中配置Spring的Plugin,Example:
  <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
  	<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
  </plug-in>


2.Struts中的所有Action配置的type属性都配置为:
  
type="org.springframework.web.struts.DelegatingActionProxy"

   Example
 
   <action path="[b]/saveOrder[/b]"  
    		type="org.springframework.web.struts.DelegatingActionProxy"
    		name="insertOrUpdateOrderForm"
    		scope="request"
    		validate="true">
   		<forward name="success" path="/addorder.jsp"/>
   		<forward name="failure" path="/addorder.jsp"/> 	
    	
    </action>
    

3.Spring中的配置(/WEB-INF/applicationContext.xml):
  
     <!--Struts Action IOC配置 -->
  <bean id="baseAction" 
  	class="cn.com.easyzone.eordermis.web.action.BaseAction"
  	abstract="true">
  	<property name="orderMis" ref="eOrderMis"/>
  </bean>
  
  <bean name=[b]"/saveOrder"[/b] 
  		class="cn.com.easyzone.eordermis.web.action.InsertOrUpdateOrderAction"
  		parent="baseAction"
  		singleton="false">
  </bean>

   
   


注:
    1.其中的bean的name必须和Struts中action的配置写的一致。
    2.在baseAction中设定一个注入方法,把业务层的Facade注入到BaseAction中,这样的话就可以在各个Action中访问到相应的业务方法了。

0 请登录后投票
   发表时间:2006-12-31  
其实,现在发现用 struts 做表示层的代码实在是太臃肿..
原来 struts 的项目现在都重构到 webwork 了。
0 请登录后投票
   发表时间:2007-01-25  
使用Spring提供的集成方法,使得我们不得不使用spring的api,赞成spring api的入侵,这已经违反了它的松散耦合理念...
哪一天我不再使用spring,代码怎么办,所以上面的baseAction 中取得bean的方式是值得提倡,很容易切换到其它技术...
如果我不再使用spring,只要修改BaseAction中方法,其它所有的struts代码不用修改。。。
0 请登录后投票
   发表时间:2007-01-26  
DispatchActionSupport
0 请登录后投票
   发表时间:2007-08-17  
如果你是struts1.3,请看“零侵入实现struts和spring的集成”
http://www.iteye.com/topic/113507
0 请登录后投票
   发表时间:2007-08-20  
我也是用的lucky_sonic的方法
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics