<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    心的方向

    新的征途......
    posts - 75,comments - 19,trackbacks - 0

    Spring與Struts如何整合

    轉自:http://lihaiyan.javaeye.com/blog/127812
    為了在Struts中加載Spring context,需要在struts-config.xml文件中加入如下部分:
    <struts-config>
      <plug-in
             className="org.springframework.web.struts.ContextLoaderPlugIn">
         <set-property property="contextConfigLocation"
             value="/WEB-INF/applicationContext.xml" />
      </plug-in>
    </struts-config>
    第一種方法:
        通過Struts的plug-in在Struts和Spring之間提供了良好的結合點。通過plug-in我們實現了Spring context的加載,不過僅僅加載Spring context并沒有什么實際的意義,還應該經過配置將Struts的Action交給Spring容器進行管理。
    <action-mappings>
      <action path="/login"
                 type="org.springframework.web.struts.DelegatingActionProxy"
                 name="loginForm">
          <forward name="success" path="/main.jsp" />
          <forward name="failure" path="/login.jsp" />
    </action>
        在form bean這個節點上與傳統的Struts配置沒有什么區別,而在Action上面則發生了變化。在傳統的action節點上type屬性寫入action類的完整類名,而和Spring結合后在這點上是使用了Spring提供的DelegatingActionProxy
    作為action的type屬性,DelegatingActionProxy同樣是org.apache.struts.action.Action的一個子類,它將把調用請求轉交給真正的Action實現。通過這樣的方式,Spring獲得了Action實例的管理權,它將對Action進行調度,并為Struts提供所需的Action實例。這樣,就可以將Action看作是Spring的一個bean,它就可以享受Spring的所有服務,如依賴注入、實例管理、事務管理等。
        在applicationContext.xml中相應的配置如下的節點:
    <beans>
    .......
        <bean name="/login" class="net.xiaxin.action.LoginAction"
                               singleton="false">
            <property name="userDAO">
               <ref bean="userDAOProxy" />
            </property>
        </bean>
    </beans>
        最后這個bean的配置是關鍵,這個名為“/login”的bean與Struts中的
    <action path="/login" ……>
    ……
    </action>
    節點相對應,這樣,Spring Bean Name與Struts Action Path相關聯,當Struts加載對應的Action時,DelegatingActionProxy就根據傳入的path屬性,在Spring Context尋找對應bean,并將其實例返回給Struts。與此同時,還可以看到,"/login" bean 中包含了一個userDAO 引用,Spring 在運行期將根據配置為其提供userDAO 實例,以及圍繞userDAO 的事務管理服務。這樣一來,對于Struts 開發而言,我們既可以延續Struts 的開發流程,也可以享受Spring 提供的事務管
    理服務。而bean 的另外一個屬性singleton="false",指明了Action 的實例獲取方式為每次重新創建。這也解決了Struts中令人詬病的線程安全問題。
    第二種方法:

    為了在 struts-config.xml 文件中配置 DelegatingRequestProcessor,你需要重載 <controller> 元素的 “processorClass” 屬性。 下面的幾行應該放在 <action-mapping> 元素的后面。

    <controller>
    <set-property property="processorClass"
    value="http://www.zhmy.com/org.springframework.web.struts.DelegatingRequestProcessor"/>
    </controller>

    增加這些設置之后,不管你查詢任何類型的 Action,Sping都自動在它的context配置文件中尋找。 實際上,你甚至不需要指定類型。下面兩個代碼片斷都可以工作:

    <action path="/user" type="com.whatever.struts.UserAction"/>
    <action path="/user"/>

    如果你使用 Struts 的 modules 特性,你的 bean 命名必須含有 module 的前綴。 舉個例子,如果一個 Action 的定義為 <action path="/user"/>,而且它的 module 前綴為“admin”, 那么它應該對應名為 <bean name="/admin/user"/> 的 bean

       
    如果你在 Struts 應用中使用了 Tiles,你需要配置 <controller> 為 DelegatingTilesRequestProcessor

    如果第二種方法不行,再用第一種方法。   
     至此,SS組合已經將Struts MVC以及Spring中的Bean管理、事務管理融為一體。如
    果算上userDAO 中的Hibernate 部分,我們就獲得了一個全面、成熟、高效、自頂而下的
    Web 開發框架。

    來源:http://deathmask1980.spaces.live.com/blog/cns!8633c46371110374!118.entry


    posted on 2008-04-10 16:46 阿偉 閱讀(779) 評論(0)  編輯  收藏 所屬分類: 框架整合
    主站蜘蛛池模板: 亚洲综合色区在线观看| 成年丰满熟妇午夜免费视频| 亚洲精品456播放| WWW亚洲色大成网络.COM | 黄页网站免费观看| 亚洲一区免费在线观看| 日韩版码免费福利视频| 亚洲综合一区国产精品| 国产精品免费小视频| 免费观看四虎精品成人| 亚洲&#228;v永久无码精品天堂久久 | 91精品国产亚洲爽啪在线观看| 亚欧免费无码aⅴ在线观看| 亚洲AV无码日韩AV无码导航| 久久精品无码精品免费专区| 亚洲成在人线中文字幕| 野花高清在线观看免费完整版中文| 亚洲AV无码一区二区三区牛牛| 国产又长又粗又爽免费视频| h视频免费高清在线观看| 日韩va亚洲va欧洲va国产| 18成禁人视频免费网站| 中文字幕亚洲综合久久综合| 免费国产成人高清视频网站| 你懂的网址免费国产| 亚洲国产精品综合久久久| 在线成人a毛片免费播放| 污网站在线免费观看| 亚洲国产精品久久66| 毛片A级毛片免费播放| fc2免费人成在线| 亚洲国产精品日韩在线| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | a级毛片在线免费观看| 亚洲av乱码一区二区三区香蕉| 亚洲av无码专区在线观看素人| 成全动漫视频在线观看免费高清版下载| 亚洲网站在线免费观看| 凹凸精品视频分类国产品免费| 日韩免费电影网址| 麻豆安全免费网址入口|