flex 读取返回的java对象

开发环境:

(1)安装了flex插件的myeclipse6.0

(2)tomcat5.5

(3)lcds2.6

三者的配置网上有很多教程,可以参照那份(flex+lcds+java教程,感谢写这篇教程的网友)。

User.java代码:

  1. packagecom.test;
  2. importjava.io.Serializable;
  3. publicclassUserimplementsSerializable{
  4. privateStringstrName;
  5. privateStringstrAddress;
  6. privateintintAge;
  7. //get和set方法省略
  8. }

MyFirstFlex.java代码:

  1. packagecom.test;
  2. publicclassMyFirstFlex{
  3. publicUsergetUser()
  4. {
  5. Useruser=newUser();
  6. user.setIntAge(24);
  7. user.setStrAddress("南京");
  8. user.setStrName("smallquick");
  9. returnuser;
  10. }
  11. }

配置remoting-config.xml(目录:web-inf/flex/)在server标签中加入下面一段

  1. <destinationid="getUser">
  2. <properties>
  3. <source>com.test.MyFirstFlex</source>
  4. <scope>application</scope>
  5. </properties>
  6. </destination>

MyFirstFlex.mxml代码如下:

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute">
  3. <mx:Script>
  4. <![CDATA[
  5. importmx.rpc.events.ResultEvent;
  6. importmx.controls.Alert;
  7. privatefunctiongetUser():void
  8. {
  9. userRO.getUser();
  10. userRO.addEventListener(ResultEvent.RESULT,getROResult);
  11. }
  12. privatefunctiongetROResult(e:ResultEvent):void
  13. {
  14. varuser:Object=e.resultasObject;
  15. if(user!=null)
  16. {
  17. txtName.text=user.strName;
  18. txtAddress.text=user.strAddress;
  19. txtAge.text=user.intAge;
  20. }
  21. else
  22. {
  23. Alert.show("没有结果!");
  24. }
  25. }
  26. ]]>
  27. </mx:Script>
  28. <mx:RemoteObjectid="userRO"destination="getUser"/>
  29. <mx:Panelx="109"y="65"width="411"height="249"layout="absolute"fontSize="12">
  30. <mx:Labelx="69"y="36"text="姓名"/>
  31. <mx:Labelx="69"y="74"text="年龄"/>
  32. <mx:Labelx="69"y="118"text="地址"/>
  33. <mx:Buttonx="189"y="161"label="请求"id="btnRequest"click="getUser()"/>
  34. <mx:TextInputx="126"y="34"id="txtName"/>
  35. <mx:TextInputx="126"y="72"id="txtAge"/>
  36. <mx:TextInputx="126"y="116"id="txtAddress"/>
  37. </mx:Panel>
  38. </mx:Application>

ok,代码写完,部署到tomcat5.5

运行MyFirstFlex.mxml,得到如下图:

点击请求按钮,如下图得到结果:

---------------------------------------------------------------------

没有implements Serializable,你就不能通过rmi(包括ejb)提供远程调用。
serialization 允许你将实现了Serializable接口的对象转换为字节序列,这些字节序列可以被完全存储以备以后重新生成原来的对象。
serialization不但可以在本机做,而且可以经由网络操作(就是猫小说的RMI)。这个好处是很大的----因为它自动屏蔽了操作系统的差异,字节顺序等。比如,在Window平台生成一个对象并序列化之,然后通过网络传到一台Unix机器上,然后可以在这台Unix机器上正确地重构这个对象。
Object serialization主要用来支持2种主要的特性:
1。Java的RMI(remote method invocation).RMI允许象在本机上一样操作远程机器上的对象。当发送消息给远程对象时,就需要用到serializaiton机制来发送参数和接收返回直。
2。Java的JavaBeans. Bean的状态信息通常是在设计时配置的。Bean的状态信息必须被存起来,以便当程序运行时能恢复这些状态信息。这也需要serializaiton机制。
总之如果在网络的环境下做类传输,应该还是implements Serializable。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值