dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>flex>文章内容
flex:RemoteObject 和 DataGrid 数据交互, AS 与java 数据类型转换
来源: 作者:

<mx:RemoteObject   id="RO" source="org.sjtu.se.Applex" fault="alert(fault.faultString, 'Error');">
    <mx:method name="listPerson"/>
</mx:RemoteObject>

 

<mx:Model id="myModel">
    {RO.listPerson.result}
</mx:Model>

 

<mx:DataGrid id="DG" with="100%" height="100%" dataProvider="{myModel}">
    <mx:columns>
        <mx:array>
            <mx:DataGridColumn headerText="Name" columnName="name"/>
            <mx:DataGridColumn headerText="Age"  columnName="age"/>
        </mx:array
    </mx:columns>
</mx:DataGrid>

public class Person
{
    String name;
    int age;
    //getters and setters here.
    //getters and setters are must for Flex to access the data in object of
    //this class
}

public List listPerson()
{
    List list = new ArrayList();
    Person p1 = new Person("seafront", 22);
    Person p2 = new Person("frontsea", 20);
    list.add(p1); list.add(p2);
    return list;
}

 


 

flex java 交互主要还是要关心这两者之间的数据交互类型的转换。ActionScript java 的类型互换不是对称的,见下面的表:

 

ActionScript to Java

 

 

 ActionScript Type

 

 

 Java Type

 

 

 null

 

 

 null

 

 

 Number

 

 

 java.lang.Number

 

 

 Boolean

 

 

 java.lang.Number, booean,
 java.lang.String

 

 

 String

 

 

 java.lang.String, java.lang.Boolean
 boolean, java.lang.Character, char,
 java.lang.Number

 

 

 Date
 XML Object

 

 

 java.util.Date
 org.w3c.dom.Document

 

 

                     

 

Java to ActionScript

 

 

 Java Type

 

 

 ActionScript Type

 

 

 null

 

 

 null

 

 

 java.lang.Number(class or primitive)

 

 

 Number

 

 

 java.lang.Boolean, boolean

 

 

 Boolean

 

 

 java.lang.String, java.lang.Character
 char[]

 

 

 String

 

 

 java.util.Collection, java.lang.reflect.Array

 

 

 Array

 

 

 java.util.Map, java.util.Dictionary

 

 

 Object

 

 

 org.w3c.dom.Document

 

 

 XML Object

 

 

 Other classes

 

 

 Object(typed)

 

 

由上面两表可以看到,一般的数据类型都可以很好的装换,但是对于用户自定义的类型的话,那么要不就是在ActionScritp中定义相关的数据类型,进行类型注册,但是这样两者就太紧耦合了,觉得不是很好。另外的话可以看到,java 可以返回Collection 类型的集合类给ActionScript ,而AS 使用是一数组来处理,就像前面例子里的一样,虽然Person是自定义类,但是里面的成员都是基本AS 可自动转换的类型的,而把Person 对象放在List里返回,然后AS 通过数组 [] 操作符来访问,直接操作name age 成员变量。

 

所以如果用flex 作表现曾的话,那么对于model 中的类,就可能要考虑这一点,有时候需要专门为flex 编写与其兼容的model 类。可见两种方法都需要额外的工作,根据不同情况来选择就好。

 

还有如果从Flex 中提交一个Array Java 方法中,java方法以 Collection来接受,如果Array不是常规数组,就是说数组元素不是用index来访问,那么里面每个元素是一个Map(HashMap), key是这个数组访问变量,比要把上面datagrid dataProvider 提交大java 方法中,那么Map key 就是name age,使用Map.get()从而取出里面的数据。

 

 

 

 

 

 

 

 

 


上一篇:Flex RemoteObject类参考   下一篇:AS3的面向对象特点概述
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·Flex 打印DataGrid内容
·Flex中的闪烁效果
·flex: 使用setInterval 制作定时
·FLEX优秀开源项目介绍
·AS3中的正则表达式
·flex确认提示(confirm window)
·Flex RemoteObject类参考
·AS3的面向对象特点概述
·利用AS3的图形界面开发及资源管
·AS3.0 访问属性
·AS3.0强大的事件机制
·FLASH CS3/AS3.0教程汇总(2007-7
  相关文章
·Flex RemoteObject类参考
·AS3的面向对象特点概述
·利用AS3的图形界面开发及资源管
·AS3.0 访问属性
·AS3.0强大的事件机制
·FLASH CS3/AS3.0教程汇总(2007-7
·一个flex正则表达式的例子
·AS3中使用的正则表达式
·flex文件上传
·flex文件下载
·定义Flex程序进度条
·Flex 与 javascript 交互
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763