主要实现java类方法调用,java对象数组传递,flex数据传递
程序在以下环境编译执行通过:
flex 1.5 Trail Edition
Tomcat/5.0.19
j2sdk1.4.2_10
WindowsXp Sp2
java文件编译后未打包,.class文件直接放到{flex-dir}\WEB-INF\classes 目录下
实体User.java注意要实现Serializable接口,否则无法将对象传递到Flex。
注意修改Flex的访问控制, flex-config.xml 增加<source>*</source>
<remote-objects>
<whitelist>
<!--whitelistconfigforunnamedobjects-->
<unnamed>
<source>*</source>
</unnamed>
</whitelist>
</remote-objects>
RemoteObjectDemo.mxml
<?
xmlversion="1.0"encoding="utf-8"
?>

<
mx:Application
xmlns:mx
="http://www.macromedia.com/2003/mxml"
verticalGap
="10"
initialize
="initApp()"
>

<
mx:Script
>
<!
[CDATA[
varuserList;

functioninitApp(){
userRO.getAllUser();
}

]]
>
</
mx:Script
>

<
mx:RemoteObject
id
="userRO"
source
="UserManager"
result
="userList=event.result"
fault
="alert(event.fault.faultstring,'Error')"
>

</
mx:RemoteObject
>

<
mx:HBox
>

<
mx:Label
text
="Search"
/>
<
mx:TextInput
id
="key"
width
="120"
/>

<
mx:Button
label
="GetUserList"
click
="userRO.getUser(key.text)"
/>

</
mx:HBox
>

<
mx:DataGrid
dataProvider
="{userList}"
width
="100%"
>
<
mx:columns
>
<
mx:Array
>
<
mx:DataGridColumn
columnName
="id"
headerText
="Id"
/>
<
mx:DataGridColumn
columnName
="name"
headerText
="Name"
/>
<
mx:DataGridColumn
columnName
="phone"
headerText
="Phone"
/>
<
mx:DataGridColumn
columnName
="email"
headerText
="Email"
/>
</
mx:Array
>
</
mx:columns
>
</
mx:DataGrid
>

</
mx:Application
>
UserManager.java
import
java.util.ArrayList;


public
class
UserManager
{


publicObject[]getUser(Stringname)
{
ArrayListusers=init();
ArrayListfinder=newArrayList();

for(inti=0;i<users.size();i++)
{
Useruser=(User)users.get(i);

if(user.getName().equals(name))
{
finder.add(user);
}
}
returnfinder.toArray();
}


publicObject[]getAllUser()
{
returninit().toArray();
}


privateArrayListinit()
{
ArrayListlist=newArrayList();

list.add(newUser(1,"ChristinaCoenraets","555-219-2270","ccoenraets@fictitious.com"));
list.add(newUser(2,"LouisFreligh","555-219-2100","lfreligh@fictitious.com"));
list.add(newUser(3,"RonnieHodgman","555-219-2030","rhodgman@fictitious.com"));
list.add(newUser(4,"JoanneWall","555-219-2012","jwall@fictitious.com"));
list.add(newUser(5,"MauriceSmith","555-219-2012","maurice@fictitious.com"));
list.add(newUser(6,"MaryJones","555-219-2000","mjones@fictitious.com"));

returnlist;

}

}
User.java
import
java.io.Serializable;


public
class
User
implements
Serializable
{

privateintid;
privateStringname;
privateStringphone;
privateStringemail;


publicUser()
{

}


publicUser(intid)
{
this.id=id;
}


publicUser(intid,Stringname,Stringphone,Stringemail)
{
this.id=id;
this.name=name;
this.phone=phone;
this.email=email;

}


publicintgetId()
{
returnid;
}


publicvoidsetId(intid)
{
this.id=id;
}


publicStringgetName()
{
returnname;
}


publicvoidsetName(Stringname)
{
this.name=name;
}


publicStringgetPhone()
{
returnphone;
}


publicvoidsetPhone(Stringphone)
{
this.phone=phone;
}


publicStringgetEmail()
{
returnemail;
}


publicvoidsetEmail(Stringemail)
{
this.email=email;
}

}