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

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

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

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

不過(guò)這種方式太過(guò)于繁瑣。于是想自己利用flex reflect來(lái)實(shí)現(xiàn)一個(gè)通用的convert或者說(shuō)類似xstream這樣的組件。
當(dāng)然,首先是去google一把,還真找到兩個(gè),一個(gè)是XMLConverter (http://www.customware.net/repository/display/FLEX/Integrating+Flex+with+XML+using+XMLConverter),一個(gè)就是完全兼容xtream的 asx3m (http://code.google.com/p/asx3m/)。
XMLConverter簡(jiǎn)單,不過(guò)不是開源的,對(duì)于解析單個(gè)對(duì)象的xml格式,還是夠的,但是對(duì)于解析復(fù)雜的包含list結(jié)構(gòu)的,就愛莫能助了。最終還是采用了asx3m,很方便?!?唯一不爽的就是,asx3m竟然需要依賴VEGAS(http://vegas.googlecode.com/svn/AS3/trunk/src/vegas/)這個(gè)龐然大物(其實(shí)其只需要hashmap, list等幾個(gè)輔助類)
使用asx3m確實(shí)很方便,兩端代碼也很簡(jiǎn)易,如下:
服務(wù)器端的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);  
//這個(gè)array中就是user對(duì)象列表  
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);
//這個(gè)array中就是user對(duì)象列表
var array:ArrayCollection = xmlc.fromXML( compXML ) as ArrayCollection;
就這么簡(jiǎn)單?!?當(dāng)然,這種方式,需要在兩端維護(hù)兩套對(duì)象結(jié)構(gòu)(java object)和(as object),但其擴(kuò)展性和靈活度要比那種AMF的remoteobject的方式高很多。

相關(guān)文章

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

    Flex 文本框的輸入下拉提示

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

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

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

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

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

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

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

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

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

    Flex ShareObject簡(jiǎn)單應(yīng)用

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

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

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

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

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

    Flex CategoryAxis 字體樣式修改

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

    Flex3 界面布局教程 第二篇

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

最新評(píng)論