最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

不過這種方式太過于繁瑣。于是想自己利用flex reflect來實現(xiàn)一個通用的convert或者說類似xstream這樣的組件。
當(dāng)然,首先是去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格式,還是夠的,但是對于解析復(fù)雜的包含list結(jié)構(gòu)的,就愛莫能助了。最終還是采用了asx3m,很方便?!?唯一不爽的就是,asx3m竟然需要依賴VEGAS(http://vegas.googlecode.com/svn/AS3/trunk/src/vegas/)這個龐然大物(其實其只需要hashmap, list等幾個輔助類)
使用asx3m確實很方便,兩端代碼也很簡易,如下:
服務(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);  
//這個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;
就這么簡單。—— 當(dāng)然,這種方式,需要在兩端維護(hù)兩套對象結(jié)構(gòu)(java object)和(as object),但其擴(kuò)展性和靈活度要比那種AMF的remoteobject的方式高很多。

相關(guān)文章

最新評論

大厂| 邳州市| 苏州市| 丰原市| 西乡县| 江源县| 中方县| 津南区| 宽甸| 视频| 唐海县| 诸城市| 驻马店市| 简阳市| 马龙县| 隆回县| 抚州市| 都江堰市| 阜新| 宜州市| 称多县| 通渭县| 南充市| 察雅县| 茶陵县| 北宁市| 建宁县| 江油市| 临夏县| 大方县| 山西省| 上饶市| 梁平县| 比如县| 澎湖县| 盐源县| 江口县| 九龙县| 湄潭县| 临城县| 买车|