`
kuiyuexiang
  • 浏览: 54761 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

flex使用RemoteObject,如何给服务器端传递对象

    博客分类:
  • flex
阅读更多
举个例子吧,比如说用户登陆,FLEX肯定要向JAVA传递用户名和密码,如果我把这个值封装到一个UserSource对象里面,然后把这个对象传给JAVA,行不行?!
同样,JAVA端又能不能将封装到一个UserSource对象里的信息传给FLEX?!
这两个问题一样,可以通过AS建立一个与JAVA的对应类来接收相应的数据传递;
而如果只是参数问题,直接设置相关的方法,象JAVA中那么调用就行。
如果JAVA端返回的是一个LIST集合,那么FLEX端要如何接收,又如何将LIST里的值一个一个取出来?
JAVA端的LIST在FLEX中表现的方式是数组方式。如果LIST里是一些复杂类型的数据,则需在JAVA端用MAP的方式映射相应的数据内容,在FLEX中的数据则以{O1:V1,O2:V2}的OBJECT类型数据进行保存。

给你我写的 flex + lcds+spring+hibernate的构架应用中的代码。也许对你有一点帮助。
public class AdminLogInCommand implements ICommand
{
[Bindable]
public var modelLocator:AdminModelLocator = AdminModelLocator.getInstance();
public function AdminLogInCommand()
{
}

public function execute(event:CairngormEvent):void
{
var adminLogInEvent:AdminLogInEvent = event as AdminLogInEvent;
var ro:RemoteObject = new RemoteObject("administratorServiceRO",true);
ro.addEventListener(ResultEvent.RESULT,doRes);
ro.addEventListener(FaultEvent.FAULT,doFault);
ro.logon(adminLogInEvent.username,adminLogInEvent.password);
//modelLocator.adminState = modelLocator.ADMIN_MAIN_PAGE;
}
private function doRes(evt:ResultEvent):void{
modelLocator.adminState = modelLocator.ADMIN_MAIN_PAGE;
}
private function doFault(evt:FaultEvent):void{
var parseError:ErrorMsg = new ErrorMsg();
mx.controls.Alert.show(parseError.getErrorMsg(evt.fault.faultString));
}

}


VO的as如下:
package com.firemax.project.freshkon.vo
{
import com.adobe.cairngorm.vo.ValueObject;
[RemoteClass(alias="com.firemax.project.freshkon.hibernate.FkTAdministrator")]
public class AdminVO implements ValueObject
{
[Bindable]
public var userId:String;
[Bindable]
public var userName:String;
[Bindable]
public var password:String;
[Bindable]
public var loginCount:int;
[Bindable]
public var lastLogin:Date;
public function AdminVO()
{

}
public function toString():String{
var s : String = "Administrator[userId=";
    s += userId;
    s += ", userName=";
    s += userName;
    s += ", password=";
    s += password;
    s += ", loginCount=";
    s += loginCount;
    s += ", lastLogin=";
    s += lastLogin;
    s += "]";
    return s;
}
}
}

服务器端的java的POJO如下:
package com.firemax.project.freshkon.hibernate;

import java.util.Date;

/**
* FkTAdministrator entity.
*
* @author MyEclipse Persistence Tools
*/

public class FkTAdministrator implements java.io.Serializable {

    // Fields

    private String userId;
    private String userName;
    private String password;
    private Integer loginCount;
    private Date lastLogin;

    // Constructors

    /** default constructor */
    public FkTAdministrator() {
    }

    /** full constructor */
    public FkTAdministrator(String userName, String password,
            Integer loginCount, Date lastLogin) {
        this.userName = userName;
        this.password = password;
        this.loginCount = loginCount;
        this.lastLogin = lastLogin;
    }

    // Property accessors

    public String getUserId() {
        return this.userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return this.userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return this.password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getLoginCount() {
        return this.loginCount;
    }

    public void setLoginCount(Integer loginCount) {
        this.loginCount = loginCount;
    }

    public Date getLastLogin() {
        return this.lastLogin;
    }

    public void setLastLogin(Date lastLogin) {
        this.lastLogin = lastLogin;
    }

}
分享到:
评论
1 楼 lxhzm 2009-04-22  
没看到则么解决java返回list并在flex端解析

相关推荐

Global site tag (gtag.js) - Google Analytics