您的位置:首页 > 其它

Flex给服务器端传送对象

2010-03-22 10:18 85 查看
举个例子吧,比如说用户登陆,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类型数据进行保存。

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

//modelLocatormodelLocator.adminState = modelLocator.ADMIN_MAIN_PAGE;

}

private function doRes(evt:ResultEvent):void{

modelLocatormodelLocator.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));

}

}

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如下:

Js代码



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;

}

}

}

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如下:

Java代码



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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: