源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

使用asx3m与xstream配合解决flex与java利用httpservice传递xml数据问题

  • 时间:2020-07-18 02:47 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:使用asx3m与xstream配合解决flex与java利用httpservice传递xml数据问题
后端也存在java user object类,利用xstream组件把list中的user对象序列化成xml数据。在flex端通过httpservice使用E4X format格式获取。 刚开始自己准备通过e4x技术来解析xml,构造flex user object,类似这样的处理方式:
[url=http://www.customware.net/repository/display/FLEX/Integrating+Flex+with+XML+using+XMLConverter]http://www.customware.net/repository/display/FLEX/Integrating+Flex+with+XML+using+XMLConverter[/url]),一个就是完全兼容xtream的 asx3m ([url=http://code.google.com/p/asx3m/]http://code.google.com/p/asx3m/[/url])。 XMLConverter简单,不过不是开源的,对于解析单个对象的xml格式,还是够的,但是对于解析复杂的包含list结构的,就爱莫能助了。最终还是采用了asx3m,很方便。—— 唯一不爽的就是,asx3m竟然需要依赖VEGAS([url=http://vegas.googlecode.com/svn/AS3/trunk/src/vegas/]http://vegas.googlecode.com/svn/AS3/trunk/src/vegas/[/url])这个庞然大物(其实其只需要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的方式高很多。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部