主要实现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>
<whitelist>
<!-- whitelist config for unnamed objects -->
<unnamed>
<source>*</source>
</unnamed>
</whitelist>
</remote-objects>
RemoteObjectDemo.mxml
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" verticalGap="10" initialize="initApp()">
<mx:Script>
<![CDATA[
var userList;
function initApp() {
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="Get User List" 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
public class UserManager {
public Object[] getUser(String name) {
ArrayList users = init();
ArrayList finder = new ArrayList();
for(int i=0; i<users.size(); i++){
User user = (User)users.get(i);
if(user.getName().equals(name)){
finder.add(user);
}
}
return finder.toArray();
}
public Object[] getAllUser() {
return init().toArray();
}
private ArrayList init() {
ArrayList list = new ArrayList();
list.add(new User(1, "Christina Coenraets", "555-219-2270", "ccoenraets@fictitious.com"));
list.add(new User(2, "Louis Freligh", "555-219-2100", "lfreligh@fictitious.com"));
list.add(new User(3, "Ronnie Hodgman", "555-219-2030", "rhodgman@fictitious.com"));
list.add(new User(4, "Joanne Wall", "555-219-2012", "jwall@fictitious.com"));
list.add(new User(5, "Maurice Smith", "555-219-2012", "maurice@fictitious.com"));
list.add(new User(6, "Mary Jones", "555-219-2000", "mjones@fictitious.com"));
return list;
}
}
User.java
public class User implements Serializable {
private int id;
private String name;
private String phone;
private String email;
public User() {
}
public User(int id){
this.id = id;
}
public User(int id, String name, String phone, String email) {
this.id = id;
this.name=name;
this.phone=phone;
this.email=email;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}