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

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

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

    雪湖小札@blogjava

    心情與技術文檔同行 http://hi.baidu.com/jingleq

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      24 Posts :: 2 Stories :: 4 Comments :: 0 Trackbacks
    示例代碼下載:flex-struts.rar
    該代碼包含兩個項目,一個是web項目,一個是flex項目,使用workshop+flex builder2開發,主要演示了如下幾個特征:
    (1).flex獲取遠程url的xml數據,加載到DataGrid中。在解釋數據的時候,使用了actionscript的class.
    actionscript class文件代碼:
     package org.c2ome.flex.xml

     public class XmlDoc
     
    {
      private 
    var headStr :String = 
       
    "<?xml version='1.0' ?>" + 
       
    "<Msg>" + 
       
    "<data>";
      private 
    var footStr: String =
       
    "</data>" + 
       
    "</Msg>";
      private 
    var contentStr: String = "";

      public 
    function addData(key : String, value: String) : void {
       
    var nodeStr: String = 
        
    "<entry><key>" + key + "</key><value>" + value +"</value>" + "</entry>";
       contentStr 
    +=nodeStr;
      }

      public 
    function toXml() : XML {
       
    return new XML(headStr + contentStr + footStr);
      }

      public 
    function toString() :String {
       
    return headStr + contentStr + footStr;
      }
     
     }

    }

    flexj.mxml代碼:

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
     
    <mx:Script>
      
    <![CDATA[
      import org.c2ome.flex.xml.XmlDoc;
      import mx.rpc.events.ResultEvent;
      import mx.controls.Alert;
      import flash.events.Event;
      import flash.net.URLLoader;
      import flash.net.URLRequest;
            private function loadApp():void {
       var loader:URLLoader = new URLLoader();
       var request:URLRequest = new URLRequest("http://localhost:8080/flexLogic.do?method=getBooks");
       var variables:URLVariables = new URLVariables();
       var x : XmlDoc = new XmlDoc();
       x.addData("name","c2one");
       x.addData("password","123456");
       variables.xmlDoc = x.toString();
       request.data = variables;
       request.method = "POST";
       loader.load(request);
       loader.addEventListener(Event.COMPLETE, onComplete);
            }
      private function onComplete(event:Event):void
      {
          var loader:URLLoader = event.target as URLLoader;
          if (loader != null) {
              var externalXML:XML = new XML(loader.data);
              bookdg.dataProvider = externalXML.data.entry.(key=="cc").value.Book;
           sysReturn.text = externalXML.data.entry.(key=="name").value.valueOf();
          }
          else {
              Alert.show("loader is not a URLLoader!");
          }
      }
      
    ]]>
     
    </mx:Script>
     
    <mx:DataGrid x="78.5" y="93" id="bookdg">
      
    <mx:columns>
       
    <mx:DataGridColumn headerText="name" dataField="@name"/>
       
    <mx:DataGridColumn headerText="price" dataField="@price"/>
      
    </mx:columns>
     
    </mx:DataGrid>
     
    <mx:Button x="78.5" y="292" label="Button" click="loadApp();"/>
     
    <mx:TextArea x="78" y="256" height="28" width="202.5" id="sysReturn"/>
    </mx:Application>
    (2).在web端根目錄配置跨域訪問控制:建文件crossdomain.xml
    <?xml version="1.0"?> 
    <!DOCTYPE cross-domain-policy
    SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"
    >
    <cross-domain-policy>
        
    <allow-access-from domain="*" />
    </cross-domain-policy>
    (3).在web端使用了betwixt來處理xml與對象,看com.c2one.util.XMLUtil
    package com.c2one.util;

    import java.beans.IntrospectionException;
    import java.io.IOException;
    import java.io.StringReader;
    import java.io.StringWriter;
    import java.util.Map;

    import org.apache.commons.betwixt.io.BeanReader;
    import org.apache.commons.betwixt.io.BeanWriter;
    import org.xml.sax.SAXException;

    public class XMLUtil {

        
    public static String beanParser(String info, String exeCode,
                Map
    <String, Object> data) throws IOException, SAXException,
                IntrospectionException 
    {
            String result 
    = "";
            StringWriter outputWriter 
    = new StringWriter();
            outputWriter.write(
    "<?xml version='1.0' ?>");
            BeanWriter beanWriter 
    = new BeanWriter(outputWriter);
            beanWriter.getXMLIntrospector().getConfiguration()
                    .setAttributesForPrimitives(
    true);
            beanWriter.getBindingConfiguration().setMapIDs(
    false);
            beanWriter.enablePrettyPrint();
            ResponseEntity entity 
    = new ResponseEntity(info, exeCode, data);
            beanWriter.write(
    "Msg", entity);
            result 
    = outputWriter.toString();
            outputWriter.close();
            
    return result;
        }


        
    public static RequestEntity stringParser(String str)
                
    throws IntrospectionException, IOException, SAXException {
            StringReader xmlReader 
    = new StringReader(str);
            BeanReader beanReader 
    = new BeanReader();
            beanReader.getXMLIntrospector().getConfiguration()
                    .setAttributesForPrimitives(
    true);
            beanReader.getBindingConfiguration().setMapIDs(
    false);
            beanReader.registerBeanClass(
    "Msg", RequestEntity.class);
            RequestEntity obj 
    = (RequestEntity) beanReader.parse(xmlReader);
            
    return obj;
        }

    }
    posted on 2007-11-12 10:27 csnowfox 閱讀(2153) 評論(1)  編輯  收藏

    Feedback

    # re: struts與flex通過xml交互模型 2008-04-12 10:30 豆抓
    路過,哈  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产成人免费在线| 今天免费中文字幕视频| 91精品导航在线网址免费| 国产精品亚洲二区在线观看| 男人扒开添女人下部免费视频| 午夜一级免费视频| 亚洲一卡2卡三卡4卡无卡下载| 成人免费a级毛片无码网站入口| 亚洲一级在线观看| 丁香花免费高清视频完整版| 国产AV旡码专区亚洲AV苍井空| 99精品全国免费观看视频| 亚洲码欧美码一区二区三区| 四虎AV永久在线精品免费观看| 国产精品亚洲色图| 亚洲高清视频一视频二视频三| 尤物视频在线免费观看| 国产亚洲成av片在线观看| 人人揉揉香蕉大免费不卡| 亚洲黄色片在线观看| 在线精品免费视频| 一级特级女人18毛片免费视频| 亚洲国产精品无码一线岛国| 久久国产色AV免费观看| 亚洲中文字幕无码爆乳app| 国产99视频精品免费视频7| 一级全免费视频播放| 亚洲av色影在线| 最近高清国语中文在线观看免费| 国产亚洲视频在线播放大全| 亚洲综合另类小说色区| 18禁免费无码无遮挡不卡网站| 精品亚洲成a人在线观看| 亚洲人成影院在线无码按摩店| 久久免费看黄a级毛片| 性色av极品无码专区亚洲| 国产亚洲福利精品一区| 一个人在线观看视频免费| 一区二区免费电影| 亚洲制服在线观看| 国产黄色一级毛片亚洲黄片大全|