Flex
支持多种与服务器端的通讯方式,包括
remote
和
socket
等高级数据通讯方式。
remote
采用
amf
(
action message format
)协议。
amt
是一种二进制格式,专用于
as
和服务器端通讯,比
http
通讯要快很多,而且支持多种数据类型,如
java
,
.net,php
等。本文将介绍如何使用
Flex RemoteObject components
调用服务器端
java
对象的方法。
Flex
客户端使用
RemoteObject
在
mxml
中声明一个
id
为
ro
的
RemoteObject
,在
as
中可以通过
ro
引用
RemoteObject
对象,
destination
是服务器端暴露的
java
服务对象,
Method
的
name
是
java
服务对象中的方法,
result
是访问服务器方法的回调函数。本例中是使用
RemoteObject
访问服务器端
HelloWorld
的
sayHello
方法。
testHelloWorld.mxml
代码
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml”>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
[Bindable]
private var memberResult:Object;
private function say():void{
var user:User=new User();
user.setName(n.text);
user.setId(”testId”);
ro.sayHello(user);
}
public function handleResult(event:ResultEvent):void {
target.text=event.result as String;
}
]]>
</mx:Script>
<mx:RemoteObject id=”ro” destination=”HelloWorld”>
<mx:method name=” sayHello ” result=” handleResult (event)”/>
<mx:RemoteObject>
<mx:TextInput id=”n” change=”say()”/>
<mx:Label id=”target”/>
</mx:Application>
User.as
代码
package {
[RemoteClass(alias="cn.com. remote.test.User")]
public class User {
public var name:String;
public var id:String;
public function getName():String{
return name;
}
public function setName(name:String ):void {
this.name = name;
}
public function getId():String {
return id;
}
public function setId(id:String):void {
this.id = id;
}
}
}
定义服务器端
java
对象
HelloWorld.java
代码
package cn.com. remote.test;
public class HelloWorld {
public String sayHello(String name){
System.out.println(”**********sayHello(String name) in*************”);
System.out.println(”hello,”+name);
return “hello,”+name;
}
public User getUser(String name){
System.out.println(”**********getUser in*************”);
return new User(name,name+”Id”);
}
}
User.java
代码
package cn.com. remote.test;
public class User {
private String name;
private String id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
配置服务器端
destination
使用
RemoteObject
与服务器端通讯,需要用到
Flex Date Services
,本文使用的是
BlazeDS server
,
BlazeDS
的使用本文不做详细说明,可参看
http://opensource.adobe.com/wiki/display/blazeds/BlazeDS/
。
在
remoting-config.xml
中配置
destination
,增加如下代码
<
destination
id
=
“
helloWorld
“
>
<
properties
>
<
source
>
cn.com. remote.test .helloWorld
</
source
>
<
factory
>
springFactory
</
factory
>
</
properties
>
</
destination
>
As
对象与
java
对象的转换
在
as
中调用
ro.sayHello
时,传入一个
as
对象
user
,服务器端将会把
user
对象转换为
java
对象
user
。同样,如果服务器端方法
return
的是
java User
对象,
as
接收到的将是
as
的
User
对象。
[RemoteClass(alias="cn.com. remote.test.User")]
声明了
As user
对象与
java User
对象的对应关系。下面是基础类型或常用类的对应关系图。
需要注意到问题
flex remote
传递
object
参数和接受返回的
dojo
对象,应注意以下问题:
1.as
对象属性必须为
public
的
2.remote
调用的
java
方法时,参数不能作为区别不同方法的依据,也就是说,
java
方法不
能重名
3.dojo
对象,必须有无参构造函数
4.as
对象需加
[RemoteClass(alias="cn.com. remote.test.User")]
相关推荐
使用封装后的RemoteObject和java通信,以blazeds做为第三方软件,上传的是一个Demo实例
eclipse3.7 + flash builder 4.5插件 + tomcat6.X调试通过,一个flex remoteobject简单例子(BlazeDS)。实际导入后指定flex server--java settings--blazeds.war的路径
介绍flex使用RemoteObject技术
FLEX使用RemoteObject方式和后台童心
一个用Flex调用JAVA方法的例子ffffffff
flex4 中,用remoteobject 实现多文件上传的例子,有进度展示
Flex 和RemoteObject通讯方式 图文解释!
flex使用 RemoteObject 与java进行json格式的数据交互
本实例介绍如何使用flex 访问 remoteObject,里面除了实例之外还对项目的配置过程进行了详细的介绍,只要按照步骤去配置你就可以配置好的。
flex中actionscript动态调用remoteobject类,很简单的一个例子,后面可以扩充,动态调用java的方法,可在java方法中放个switch,返回不同的结果集
flex中RemoteObject与java的通信,其中有详细的步骤和代码,照着做能实现功能,对初学者很有用
LCDS(LiveCycle Data Service)是由FDS(Flex Data Service)发展而来,通过LCDS与服务器端通信不但可以大大提高通信的效率,而且还能提供传统B/S结构没有的功能。由于目前LCDS只能通过war包的形式提供给服务端,...
两个项目,flex + java + RemoteObject,实现一个简单的RemoteObject通信案例
flex解析xml实例,可读取xml标签来获取信息,并附表情
NULL 博文链接:https://longyi-java.iteye.com/blog/986183
使用 ADOBE FLEX 45访问数据 目录 第 1 章: 访问数据服务概述 Flex 与其它数据访问技术的比较 使用 Flash Builder 访问数据服务 ...使用 RemoteObject 组件 显式参数传递和参数绑定 处理服务结果
使用RemoteObject构建和Java的通信;使用到了验证控件Validator;使用了CSS样式对Alert对话框进行了修饰;使用了样式对Accordion的Canvas上的lable字体做了修饰。 总结:对Flex和Java对象之间的转换还要进一步的研究...
NULL 博文链接:https://fykyx521.iteye.com/blog/377002
这次使用flex4+myeclipse8.5录制了一个视频.以免时间长了遗忘. 软件环境:windows7+flex4+myeclipse8.5+blazeds 功能描述:分别用代码实现了三种flex4与Java通信 三种方式: 1 flex 与普通java类通信RemoteObject ...
flex3(remoteobject+datagrid+.....)+java+oracle源代码