<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 豆抓
    路過,哈  回復  更多評論
      


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


    網站導航:
     
    主站蜘蛛池模板: 永久免费观看黄网站| 亚洲AV无码一区二区二三区软件 | 亚洲爆乳无码专区www| 亚洲AV色吊丝无码| 亚洲视频小说图片| 亚洲国产精品综合福利专区| 亚洲精品在线免费观看视频| 久久久亚洲欧洲日产国码是AV| 亚洲精品中文字幕乱码| 亚洲国产精品专区| 精品久久久久久亚洲精品| 99999久久久久久亚洲| 亚洲欧美成人一区二区三区| 亚洲AV日韩AV无码污污网站| 综合一区自拍亚洲综合图区| 一级毛片免费视频网站| 十八禁在线观看视频播放免费| 国产免费拔擦拔擦8X高清在线人| 久久久久久AV无码免费网站下载| 69视频在线观看高清免费| 妻子5免费完整高清电视| 精品久久免费视频| 亚洲成A∨人片天堂网无码| 亚洲国产日韩在线视频| 亚洲欧洲视频在线观看| 亚洲午夜福利在线视频| 免费一区二区无码视频在线播放 | 亚洲乱码中文论理电影| 亚洲中文字幕久久精品无码VA| 欧美亚洲国产SUV| 久久精品成人免费观看97| 性xxxx视频免费播放直播| 国产精品视频永久免费播放| 免费中文字幕在线| 亚洲阿v天堂在线| 亚洲中文字幕AV在天堂| 日本黄页网址在线看免费不卡| 国产成人精品无码免费看 | 三级网站免费观看| 18国产精品白浆在线观看免费| 国产伦精品一区二区三区免费迷|