上篇是flex解析java对象,这一片是java解析flex的传递的对象,并加入问候语返回。
在上一篇的基础上,修改一下代码:
User.java代码如下:
- package com.test;
- import java.io.Serializable;
- public class User implements Serializable {
- private String strName;
- private String strAddress;
- public User(){}
- public String getStrName() {
- return strName;
- }
- public void setStrName(String strName) {
- this.strName = strName;
- }
- public String getStrAddress() {
- return strAddress;
- }
- public void setStrAddress(String strAddress) {
- this.strAddress = strAddress;
- }
- }
MyFirstFlex.java代码如下:
- package com.test;
- public class MyFirstFlex {
- public User getUser(User user)
- {
- User user1 = new User();
- user1.setStrAddress("地址是"+user.getStrAddress());
- user1.setStrName("姓名是"+user.getStrName());
- return user1;
- }
- }
MyFirstFlex.mxml代码如下:
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
- <mx:Script>
- <![CDATA[
- import mx.rpc.events.ResultEvent;
- import mx.controls.Alert;
- private function getUser():void
- {
- var user:User = new User();
- user.strName = txtName.text;
- user.strAddress=txtAddress.text;
- userRO.getUser(user);
- userRO.addEventListener(ResultEvent.RESULT,getROResult);
- }
- private function getROResult(e:ResultEvent) :void
- {
- var user:Object = e.result as Object;
- if(user != null)
- {
- txtName.text = user.strName;
- txtAddress.text = user.strAddress;
- }
- else
- {
- Alert.show("没有结果!");
- }
- }
- ]]>
- </mx:Script>
- <mx:RemoteObject id="userRO" destination="getUser"/>
- <mx:Panel x="109" y="65" width="411" height="249" layout="absolute" fontSize="12">
- <mx:Label x="69" y="36" text="姓名"/>
- <mx:Label x="69" y="118" text="地址"/>
- <mx:Button x="189" y="161" label="请求" id="btnRequest" click="getUser()"/>
- <mx:TextInput x="126" y="34" id="txtName"/>
- <mx:TextInput x="126" y="116" id="txtAddress"/>
- </mx:Panel>
- </mx:Application>
User.as代码如下(我暂时放在与MyFirstFlex.mxml同一目录下,注意,编写完成后确保与编译后的.swf在同一目录):
- package
- {
- [RemoteClass(alias="com.test.User")]
- public class User
- {
- public var strName:String;
- public var strAddress:String;
- public function User()
- {
- }
- }
- }
注意:[RemoteClass(alias="com.test.User")] 用于对应User.java,这个类中的字段类型、名称必须与User.java保持一致。
运行:
得到如下界面:
输入信息:
点击请求按钮: