当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

整合Spring与Struts的几种办法[Java编程]

赞助商链接



  本文“整合Spring与Struts的几种办法[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Spring与Struts对Model-View-Controller情势均供应了很好的支持.相比之下,Struts是一个对比纯真的MVC框架,在实际利用中,开辟人员更喜好利用Struts完成MVC的计划,因而在有必要对Spring与Struts举行整合.

整合的关键点在于:将Struts中Action的实例生成不再由Struts自己负责,而交于Spring容器去管理.因此,举行整合的一个技术前提是Struts中作为Controller的ActionServlet必须可以装载Spring的利用程序环境,而Spring的org.springframework.web.struts.ContextLoaderPlugin刚好供应了这种支持.在Struts的配置文件struts-config.xml中,将ContextLoaderPlugin注册便可,示比方下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
...
<plug-in className=”org.springframework.web.struts.ContextLoaderPlugin”>
<set-property property=”contextConfigLocation” value=”/WEB-INF/config.xml”/>
</plug-in>
...
</struts-config>

此中的config.xml是Spring的配置文件.

之后,我门可以采取三种方法之一来整合Spring和Struts:

1.Struts的Action担当Spring的ActionSupport类,并在Action中获得Spring的ApplicationContext.这是最简单的一种整合方法,但有三个缺陷:第一,Struts与Spring精密耦合,不能改换到其他IoC容器;第二,难以利用Spring AOP特点;第三,关于需求利用DispatchAction的Struts利用无能为力.

2.在Struts的配置文件中,以Spring的DelegatingRequestProcessor类替换Struts的RequestProcessor类,并在Spring的配置文件中定义与Struts配置文件中<action-mappings>对应的bean,从而将Struts的Action与Spring脱离,并把Struts的行动置于Spring的掌握之下.这种整合方法的长处是将不再依靠Spring这个特定的IoC容器,但必须依靠Struts的RequestProcessor类.  

3.通过Spring的DelegatingActionProxy类代理Struts的行动,即在Struts配置文件中,定义<action-mappings>的type属性全部改成DelegatingActionProxy,而不是具体的类名,并在Spring配置文件中定义与Struts行动映射对应的bean,从而将Struts的Action与Spring脱离,并把Struts的行动置于Spring的掌握之下.无疑,这是最机动的一种整合方法.

下面就通过HelloWorld示例来解析一下第三种整合方法的实施步骤.

Step 1:改正Struts的配置文件struts-config.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<form-beans>
<form-bean name="helloWorld" type="com.strutstest.action.HelloWorld"/>
</form-beans>
<action-mappings>
<!--注意此处的type属性定义为DelegatingActionProxy 类-->
<action path="/helloWorld" type="org.springframework.web.struts.DelegatingActionProxy" name="helloWorld" validate="true" input="/WEB-INF/jsp/input.jsp">
<forward name="index" path="/WEB-INF/jsp/index.jsp"/>
<forward name="show" path="/WEB-INF/jsp/show.jsp"/>
</action>
<action
path="/input"
type="org.apache.struts.actions.ForwardAction"
parameter="/WEB-INF/jsp/input.jsp"/>
</action-mappings>
<!--注册ContextLoaderPlugIn -->
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/config.xml" />
</plug-in>
<message-resources parameter="messages"/>
</struts-config>


  以上是“整合Spring与Struts的几种办法[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>JBPM 4.0操纵问题 -- 3:也谈 JBPM 4 整合Spring..</b>
  • 整合Spring与Struts的几种办法
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .