主要实现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;
}
}
本文介绍了一个使用Flex与Java进行交互的示例项目。该项目实现了用户数据的获取与展示功能,具体包括从Java后端获取用户列表并显示在Flex前端界面上。文章通过具体的源代码展示了如何设置Flex应用来调用Java远程对象方法,以及如何在Java端准备数据并返回给Flex。
1万+

被折叠的 条评论
为什么被折叠?



