欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用asx3m與xstream配合解決flex與java利用httpservice傳遞xml數(shù)據(jù)問題

 更新時間:2009年02月03日 04:50:11   作者:  
過年期間抽空在弄flex前端對象與后端java對象利用httpservice交互的問題。比如前端需要user list數(shù)據(jù),構造了flex user object類。
后端也存在java user object類,利用xstream組件把list中的user對象序列化成xml數(shù)據(jù)。在flex端通過httpservice使用E4X format格式獲取。
剛開始自己準備通過e4x技術來解析xml,構造flex user object,類似這樣的處理方式:
復制代碼 代碼如下:

public function fromXML(currentNode:XML):void{
userID = new Number(currentNode.userID);
userName = currentNode.userName;
......
}

不過這種方式太過于繁瑣。于是想自己利用flex reflect來實現(xiàn)一個通用的convert或者說類似xstream這樣的組件。
當然,首先是去google一把,還真找到兩個,一個是XMLConverter (http://www.customware.net/repository/display/FLEX/Integrating+Flex+with+XML+using+XMLConverter),一個就是完全兼容xtream的 asx3m (http://code.google.com/p/asx3m/)。
XMLConverter簡單,不過不是開源的,對于解析單個對象的xml格式,還是夠的,但是對于解析復雜的包含list結構的,就愛莫能助了。最終還是采用了asx3m,很方便?!?唯一不爽的就是,asx3m竟然需要依賴VEGAS(http://vegas.googlecode.com/svn/AS3/trunk/src/vegas/)這個龐然大物(其實其只需要hashmap, list等幾個輔助類)
使用asx3m確實很方便,兩端代碼也很簡易,如下:
服務器端的java代碼:
List<WorkItem> users = um.queryUsers(1);  
XStream xstream = new XStream();  
xstream.alias("User", User.class);  
String xml = xstream.toXML(users); 
List<WorkItem> users = um.queryUsers(1);
XStream xstream = new XStream();
xstream.alias("User", User.class);
String xml = xstream.toXML(users);
Flex端的as代碼:
import hr.binaria.asx3m.Asx3m;  
import hr.binaria.asx3m.Asx3mer;  
var xmlc:Asx3mer = Asx3mer.instance;  
xmlc.xstream.alias("User", User);  
//這個array中就是user對象列表  
var array:ArrayCollection = xmlc.fromXML( compXML ) as ArrayCollection; 
import hr.binaria.asx3m.Asx3m;
import hr.binaria.asx3m.Asx3mer;
var xmlc:Asx3mer = Asx3mer.instance;
xmlc.xstream.alias("User", User);
//這個array中就是user對象列表
var array:ArrayCollection = xmlc.fromXML( compXML ) as ArrayCollection;
就這么簡單?!?當然,這種方式,需要在兩端維護兩套對象結構(java object)和(as object),但其擴展性和靈活度要比那種AMF的remoteobject的方式高很多。

相關文章

  • Flex 文本框的輸入下拉提示

    Flex 文本框的輸入下拉提示

    在很多時候我們要實現(xiàn)一個輸入,顯示提示并且可以從提示選擇的功能,這是一種基于ComboBox 的變相實現(xiàn),從服務器上動態(tài)獲取
    2009-07-07
  • Flex與.NET互操作(十):FluorineFx.Net的及時通信應用(ApplicationAdapter)(一)

    Flex與.NET互操作(十):FluorineFx.Net的及時通信應用(ApplicationAdapter)(一)

    使用FluorineFx.Net開發(fā)的每一個實時通訊功能應用都擁有一個應用程序適配器(ApplicationAdapter),用來管理整個實時通訊應用的生命周期,以及接受和拒絕客戶端的連接等。
    2009-06-06
  • FLEX內存優(yōu)化技巧集合

    FLEX內存優(yōu)化技巧集合

    FLEX內存釋放優(yōu)化原則
    2008-03-03
  • Flex DataGrid DataGridColumn數(shù)據(jù)顏色多樣化-類型替換

    Flex DataGrid DataGridColumn數(shù)據(jù)顏色多樣化-類型替換

    用得多了,發(fā)覺自己了解的真的是九牛之一毛都沒有,最近用到了從后臺讀出數(shù)據(jù)時顯示的問題,相信很多人都有用整形數(shù)據(jù)來代替字符串數(shù)據(jù)的情況
    2009-06-06
  • flex 手寫在線簽名實現(xiàn)代碼

    flex 手寫在線簽名實現(xiàn)代碼

    企業(yè)信息系統(tǒng)中,有時候需要用到手寫簽名的功能。在這里用flex 實現(xiàn)一個。功能實現(xiàn)了,效果還在改善中。
    2009-08-08
  • Flex ShareObject簡單應用

    Flex ShareObject簡單應用

    Share object一般用來保存前來訪問的用戶的個人信息到用戶的機器上。比如用戶登陸過后保存他的名字,下次訪問時自動顯示,或者保存用戶的個性化設置等等。
    2009-06-06
  • flex 綁定元數(shù)據(jù)

    flex 綁定元數(shù)據(jù)

    這篇文章算是flex初學者的的筆記吧,首先可以概覽一下下文中的代碼,然后我們主要是看看[Bindable]的這種用法。
    2009-05-05
  • Flex 編程注意之Flex Complier參數(shù)

    Flex 編程注意之Flex Complier參數(shù)

    由于上一篇文章《Flex編程注意之Namespace的用法》引出了Flex編譯時自帶的兩個參數(shù):-namespace -include-namespace,正好想到可以寫一篇關于Flex Complier時的一些自定義參數(shù)。
    2009-07-07
  • Flex CategoryAxis 字體樣式修改

    Flex CategoryAxis 字體樣式修改

    Flex編程注意之修改CategoryAxis的字體樣式(大小、顏色、粗斜體等)
    2009-07-07
  • Flex3 界面布局教程 第二篇

    Flex3 界面布局教程 第二篇

    國慶期間,做了不少基于 flex 的開發(fā)工作,對 flex 的布局容器有了進一步深入的理解,也找到不少非常棒的文章,分享到這里方便一下大家。
    2009-10-10

最新評論