Top > SAStrutsあれこれ > SAStrutsとのやりとり用ユーティリティークラスを作成しましょう
Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
-
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
|
|
!
|
|
|
|
-
|
-
|
|
|
!
|
!
|
|
|
-
|
-
-
|
-
|
!
!
|
!
!
!
package util {
    
    import mx.rpc.events.FaultEvent;
    import mx.rpc.events.ResultEvent;
    import mx.rpc.http.mxml.HTTPService;
    
    /**
     *  SAStrutsとのやりとり用ユーティリティークラス
     */ 
    public class SAStrutsUtils {
        
        //SAStrutsへのリクエストデータ(findAll用)
        public static const REQ_FINDALL:Array = [{findAll:"method"}];
        
        public static const BASE_URL:String = "http://localhost:8080/sastruts-flex/";
        
        //サーバーへのリクエスト処理(共通)
        public static function post2sastruts(action_name:String, data:Object, resultFunc:Function, errorFunc:Function):void {
            
            // HTTP通信用オブジェクトを生成
            var srv:HTTPService = new HTTPService();
            srv.addEventListener(ResultEvent.RESULT,resultFunc);
            srv.addEventListener(FaultEvent.FAULT,errorFunc);
            srv.showBusyCursor = true;
            srv.request = data;
            srv.resultFormat = "e4x"; 
            srv.url = BASE_URL + action_name + "/"; //末尾に"/"が無いとアクションフォームにデータが格納されません。
            srv.method = "POST"; 
            
            // リクエストを実行〜結果はresultHandlerで受け取ります。
            srv.send(data);
        }
        
        //XMLListをArrayに変換します。
        //ただし、変換対象はエレメント名とエレメント値だけで、属性は無視します。
        //※共通系っぽくないですが、CheckBox用のプロパティを追加しています。
        public static function convertXMLList2Array(xmls:XMLList):Array {
            var ary:Array = new Array();
            for each (var x:XML in xmls) {
                var obj:Object = convertXML2Array(x);
                obj["checked"] = false;
                ary.push(obj);
            }
            return ary;
        }
        
        //XMLをArrayに変換します。
        //ただし、変換対象はエレメント名とエレメント値だけで、属性は無視します。
        private static function convertXML2Array(x:XML):Object {
            var obj:Object = new Object();
            for each (var c:XML in x.children()) {
                if( c.hasSimpleContent() ) {
                    obj[c.name()] = String(c);
                } else {
                    obj[c.name()] = convertXML2Array(c);
                }
            }
            return obj;
        }
    }
}

リロード   新規 編集 凍結解除 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2012-08-08 (水) 23:26:07 (2925d)