DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX基礎知識 >> ajax、Struts、spring的無縫結合
ajax、Struts、spring的無縫結合
編輯:AJAX基礎知識     

zhipingch 原創

    去年初,正好負責一個醫藥信息系統的設計開發,架構設計時,采用Struts+JDBC(自定義采用適配器模式封裝了HashMap動態VO實現的持久層)。後來ajax熱潮興起,正好系統中有很多地方需要和服務器端交互數據,如采購銷售系統中的訂單頭/訂單明細等主從表結構的維護。
    [color=blue]數據交互過程[/color],我們考慮采用xml來組織數據結構,更新/保存:前台封裝需要的xml,通過ajax提交---〉action解析xml ---〉改造原有的持久層實現xml持久化;
    查詢時:持久層根據實際需要返回xml,document對象,---〉action 處理 --〉前台自己封裝js庫來解析xml,並刷新部分頁面。

    ajax:已經有很多方法實現跨浏覽器的方式,這裡只介紹最簡單的方式,同步模式下提交xmlStr給action(*.do)。

  1. /**
  2.  * 將數據同步傳遞給後台請求url
  3.  *  @return 返回xmlhttp 響應的信息
  4.  *  @param-url = '/web/module/xxx.do?p1=YY&p2=RR';
  5.  *  @param-xmlStr:xml格式的字符串 <data><xpath><![CDATA[數據信息]]></xpath></data>
  6.  * @author zhipingch
  7.  * @date 2005-03-17
  8.  */
  9. function sendData(urlStr, xmlStr) {
  10.     var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  11.     xmlhttp.open("POST", urlStr, false);
  12.     xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  13.     if (xmlStr) {
  14.         xmlhttp.send(xmlStr);
  15.     } else {
  16.         xmlhttp.send();
  17.     }
  18.     return xmlhttp.responseXml;
  19. }



    struts中我們擴展了Action,實現了xmlStr轉化成document對象(dom4j),並且完善了轉發方式。如
[quote]
1.DispatchAction
     以一個Controller響應一組動作絕對是Controller界的真理,Struts的DispatchAction同樣可以做到這點。

[list]
<action path="/admin/user" name="userForm" scope="request" parameter="method" validate="false">
    <forward name="list" path="/admin/userList.jsp"/>
</action>
[/list]
    其中parameter="method" 設置了用來指定響應方法名的url參數名為method,即/admin/user.do?method=list 將調用UserAction的public ActionForward list(....) 函數。   

    public ActionForward unspecified(....) 函數可以指定不帶method方法時的默認方法。[/quote]
    但是這樣需要在url後多傳遞參數[size=18][color=red]method=list [/color][/size];並且action節點配置中的[color=red]parameter="method" [/color]
也沒有被充分利用,反而覺得是累贅!

    因此我們直接在BaseDispatchAction中增加xml字符串解析,並充分利用action節點配置中的[color=red]parameter="targetMethod" [/color],使得轉發的時候,action能夠直接轉發到子類的相應方法中,減少了url參數傳遞,增強了配置信

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved