Flex RemoteObject 简单应用Demo
答网友提问,做了一个RemoteObject的简单Demo。
主要实现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>
            <!-- whitelist config for unnamed objects -->
            <unnamed>
            <source>*</source> 
            </unnamed>
 </whitelist>
</remote-objects>
RemoteObjectDemo.mxml
<?xml version="1.0" encoding="utf-8"?>

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

    <mx:Script>
        <
        ]]>
    </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
import java.util.ArrayList;

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
import java.io.Serializable;

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;
    }

}
主要实现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>
            <!-- whitelist config for unnamed objects -->
            <unnamed>
            <source>*</source> 
            </unnamed>
 </whitelist>
</remote-objects>RemoteObjectDemo.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" verticalGap="10" initialize="initApp()">
    <mx:Script>
        <
        ]]>
    </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
import java.util.ArrayList;
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
import java.io.Serializable;
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;
    }
}
                    
                


    
                
            
        
浙公网安备 33010602011771号