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));
}
}
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;
}
}
}
服务器端的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;
}
}
同样,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;
}
}
相关文章推荐
- flex socket.readObject() //flex读取java服务器端发送过来的对象
- Flex接收服务器端传送的XML数据
- Flex中利用URLVariables和FileReference类Flex向服务器端脚本传送数据的例子
- flex判断对象类型
- flex shareObject对象详解
- Intent传送对象
- masterpage中服务器端控件命名规则和如何用控件名取得document中的对象,用js动态设置控件事件和属性
- 在Flex中使用本地共享对象
- JSP 服务器端对象作用域
- Flex 如何使用JAVA对象连接SQLServer数据库(转载)
- flex DataGrid 对象绑定到字段
- Flex 组件 重设对象的深度:setChildIndex
- 使用Altas的pageMethods对象实现JS与服务器端代码交互
- Flex XML对象的操作
- Sharepoint学习笔记 –架构系列—Sharepoint的服务器端对象模型(Server Object Model) 2.内容层次结构
- 现存问题以及解决方案:在ASP.NET AJAX中从客户端向服务器端传送DataTable
- 在window.setTimeout方法中传送对象
- flex---->flex访问java远程对象
- SharePoint服务器端对象模型 之 使用LINQ进行数据访问操作(Part 1)
- Java对象和Flex对象映射关系