`

struts1和2集成spring

阅读更多

struts1.xspring集成方式

 

方式一:Action交给spring管理,将业务类注入action

          引入spring-webmvc-struts.jar包到lib下,

 

          struts配置:

<action path="/searchAction"  type="org.springframework.web.struts.DelegatingActionProxy"             parameter="method">
<forward name="success" path="/result.jsp"/>
 </action>
 
 

           spring配置:

<!--这里SearchAction继承了DelegatingActionProxy-->
<bean name="/searchAction" class="com.myproject.action.SearchAction" scope="prototype">
       <property name="searchService" ref="searchService"/>
 </bean>
 
 

           注意:保持spring配置的bean namestruts配置的action path一致

 

 方式二:请求首先交给ActionServlet,然后给org.springframework.web.struts.DelegatingRequestProcessor,由这个请求处理器根据请求路径从spring容器获取action对象

 

         struts-config.xml

 <action path="/searchAction">          

  <!--注意到没有?这里没有配置type属性-->
     <forward name="success" path="/result.jsp"/>
 </action>
 <controller>
     <set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>
 </controller>
 

 

 

        spring配置:

       

<bean name="/searchAction" class="com.myproject.action.SearchAction" scope="prototype">

            <property name="searchService" ref="searchService"/>

 </bean>

 

       

方式三:Action不交给spring管理,直接在Action中实例化应用上下文,然后通过getBean("xxx"),获取相应业务对象

          struts配置遵照传统方式

        

<action path="/searchAction"  type="com.myproject.action.SearchAction">
               <forward name="success" path="/result.jsp"/>
</action>
 
      
 

        

private ApplicationContext context=WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext());
 SearchService searchService=(SearchService)context.getBean("searchService");
 

 

 

 

 

struts2.xspring集成

 

     struts.properties 配置

           struts.objectFactory=spring            #指定strutsaction类实例由spring生成

 

    struts-config.xml配置

          
<action name="search" class="searchAction" method="searchMax">
                  <result name="success">/result.jsp</result>
                  <result name="error">/error.jsp</result>
           </action>
 
 
     spring配置
           
<bean id="searchAction" class="com.myproject.action.SearchAction" scope="prototype">
                    <property name="searchService" ref="searchService"/>
           </bean>
 

 

   以上标红的两处须保持一致。

 

 

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics