flex 读取返回的java对象
(1)安装了flex插件的myeclipse6.0
(2)tomcat5.5
(3)lcds2.6
三者的配置网上有很多教程,可以参照那份(flex+lcds+java教程,感谢写这篇教程的网友)。
User.java代码:
- packagecom.test;
- importjava.io.Serializable;
- publicclassUserimplementsSerializable{
- privateStringstrName;
- privateStringstrAddress;
- privateintintAge;
- //get和set方法省略
- }
MyFirstFlex.java代码:
- packagecom.test;
- publicclassMyFirstFlex{
- publicUsergetUser()
- {
- Useruser=newUser();
- user.setIntAge(24);
- user.setStrAddress("南京");
- user.setStrName("smallquick");
- returnuser;
- }
- }
配置remoting-config.xml(目录:web-inf/flex/)在server标签中加入下面一段
- <destinationid="getUser">
- <properties>
- <source>com.test.MyFirstFlex</source>
- <scope>application</scope>
- </properties>
- </destination>
MyFirstFlex.mxml代码如下:
- <?xmlversion="1.0"encoding="utf-8"?>
- <mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute">
- <mx:Script>
- <![CDATA[
- importmx.rpc.events.ResultEvent;
- importmx.controls.Alert;
- privatefunctiongetUser():void
- {
- userRO.getUser();
- userRO.addEventListener(ResultEvent.RESULT,getROResult);
- }
- privatefunctiongetROResult(e:ResultEvent):void
- {
- varuser:Object=e.resultasObject;
- if(user!=null)
- {
- txtName.text=user.strName;
- txtAddress.text=user.strAddress;
- txtAge.text=user.intAge;
- }
- else
- {
- Alert.show("没有结果!");
- }
- }
- ]]>
- </mx:Script>
-
- <mx:RemoteObjectid="userRO"destination="getUser"/>
- <mx:Panelx="109"y="65"width="411"height="249"layout="absolute"fontSize="12">
- <mx:Labelx="69"y="36"text="姓名"/>
- <mx:Labelx="69"y="74"text="年龄"/>
- <mx:Labelx="69"y="118"text="地址"/>
- <mx:Buttonx="189"y="161"label="请求"id="btnRequest"click="getUser()"/>
- <mx:TextInputx="126"y="34"id="txtName"/>
- <mx:TextInputx="126"y="72"id="txtAge"/>
- <mx:TextInputx="126"y="116"id="txtAddress"/>
- </mx:Panel>
- </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。