今天摸索了一下Flex3中使用RemoteObject和Java类的通讯问题,感觉非常方便,虽然使用HttpService也可以,但多了一个控制器,并且还要对数据进行处理;而使用RemoteObject,则可能直接访问类方法。
看步骤:
第一步:为了测试Flex对复杂类型List的支持,所以我写了一个方法用于返回元素类型为Student的List。先看Student类代码:
package com.aptech.flex;
public class Student
{
private int sid;
private String sname;
public Student(int sid, String sname){
this.sid = sid;
this.sname = sname;
}
public Student(){
}
public int getSid(){
return this.sid;
}
public String getSname(){
return this.sname;
}
public void setSid(int sid){
this.sid = sid;
}
public void setSname(String sname){
this.sname = sname;
}
}
第二步:创建示意性的业务方法,返回List<Student>集合,习惯使用泛型,如果不用泛型应该也能处理。
[code="javpackage com.aptech.flex;
import java.util.*;
public class HelloWorld
{
public String sayHello(String str){
return str + "你好";
}
public List<Student> strList(){
List<Student> list = new ArrayList<Student>();
list.add(new Student(1, "张三"));
list.add(new Student(2, "李四"));
list.add(new Student(3, "王五"));
return list;
}
}a"]
第三步:修改<Tomcat>/lcds/flex/remoting-config.xml配置文件,添加如下语句:
<destination id = "hw">
<properties>
<source>com.aptech.flex.HelloWorld</source>
<scope>application</scope>
</properties>
</destination>
在该文件中,貌似不能写中文注释,启动容器时出现异常。
第四步:创建Flex工程,定义<mx:RemoteObject />,内容如下
<mx:RemoteObject id="hwro" destination="hw"endpoint="http://localhost:8080/Flex_J2ee/messagebroker/amf"></mx:RemoteObject>
这里的destination必须和第三步的<destination id = "hw">一致。但是在此句中我并不明白为什么要加上endpoint这个属性才有用,希望高手能帮我解释一下。
第五步:定义一个按钮,并触发单击事件。
<mx:Button x="123" y="154" label="访问java类" click="doJava(event)"/>
doJava事件定义如下:
internal doJava(event: Event): void{
hwro.strList();
hwro.addEventListener(ResultEvent.RESULT, onCallback);
}
以下是结果处理方法:
private onCallback(event: ResultEvent): void{
var ac: ArrayCollection = event.result as ArrayCollection;
var arr: Array = ac.toArray();
var str: String = "";
for(var a in arr){
str += arr[a].sid + "," + arr[a].sname + ""n";
}
Alert.show(str);
}
Flex将Java类的List自动转换成了ArrayCollection类型,该示例中List元素类型为Student,则可以使用E.属性来访问。
分享到:
相关推荐
eclipse3.7 + flash builder 4.5插件 + tomcat6.X调试通过,一个flex remoteobject简单例子(BlazeDS)。实际导入后指定flex server--java settings--blazeds.war的路径
这个Demo展示了如何创建并使用封装后的RemoteObject实例来调用Java服务,实现数据的交互。 通过上述步骤,我们可以实现Flex客户端与Java服务器的无缝通信。在实际项目中,这种方式可以用于实现复杂的业务逻辑,提供...
总的来说,Flex通过`RemoteObject`组件与Java进行JSON数据交互,提供了一种高效且直观的方式,使客户端和服务器端能紧密协作,完成复杂的业务逻辑。理解并熟练掌握这种技术对于Flex和Java开发者来说至关重要。
标题中的“flex调用java方法”指的是在Adobe Flex(一种基于ActionScript的开源框架,用于构建富互联网应用程序)中调用后端Java服务的技术。在描述中提到了使用Blazeds作为中间件来实现这种交互,Blazeds是一个开放...
- 在点击事件处理函数中调用Java后端的服务方法,并处理返回的结果。 - 示例代码如下: ```mxml 访问java类" click="doJava(event)"/> internal function doJava(event:Event):void { hwro.strList(); hwro....
Flex通过RemoteObject调用java实例:flex传入参数以及接收java返回结果。 通过mysql数据库的分页来展现flex调用java的实例。工程一共有两个:一个是java web端的,一个是flex工程。详情参考对应博客。
在Flex和Java的远程调用中,RemoteObject扮演了中间人的角色,它使得Flex客户端可以像调用本地对象一样调用Java服务器上的方法。 要实现Flex与Java的RemoteObject通信,首先需要在Flex客户端创建一个RemoteObject...
- **动态调用Java方法** - 在上述示例的基础上,可以通过在Java方法中添加`switch`语句来实现根据不同的参数返回不同的结果集。例如,在服务器端的方法中可以根据传入的参数值来判断返回不同类型或不同内容的结果。...
我们可以在Java服务器端创建代理服务,并在Flex客户端通过`RemoteObject`类来调用这些服务。 - **LCDS**:Adobe的商业产品,扩展了BlazeDS的功能,包括高级数据推送、事务管理、安全性和性能优化。 4. **Flex中的...
通过MXML,你可以定义`RemoteObject`实例,指定服务端的目标URL和服务名,然后绑定到ActionScript方法,这些方法会在调用Java服务时触发。例如: ```xml <s:RemoteObject id="myService" endpoint=...
一个用Flex调用JAVA方法的例子ffffffff
4. **调用Java服务**:在Flex客户端,我们可以创建一个RemoteObject实例,并使用callMethod方法来调用Java服务。例如: ```actionscript var ro:RemoteObject = new RemoteObject("javaService"); ro....
通过以上步骤,我们建立了Flex与Java的通信桥梁,使得Flex可以通过BlazeDS调用Java服务来操作MySQL数据库。在Flex界面中,可以轻松实现对数据库的查询、添加、删除和更新等操作,为用户提供实时的数据交互体验。 总...
4. **连接和调用**:在Flex客户端,通过`RemoteObject`实例调用Java服务的方法。BlazeDS会在后台处理网络通信和类型转换。 5. **处理结果**:Java服务执行完毕后,结果会通过回调方法返回给Flex客户端,供进一步...
7. **编写Flex客户端代码**:在Flex MXML或ActionScript代码中,使用RemoteObject或WebService组件来调用Java服务的方法。这些组件可以自动处理AMF的序列化和反序列化过程。 8. **测试交互**:运行Flex应用程序,...
在Flex中,我们可以创建一个`RemoteObject`实例来连接Java服务,这样客户端就可以调用服务器上的方法,实现数据的读取、写入等操作。 2. `RemoteObject`连接Java后台:在Flex中,`RemoteObject`组件是与后端服务...
这样,就可以在Flex中调用Java类的方法并处理返回的结果。 2. Flex 与服务器交互 - HTTPService 当需要与Servlet进行通信时,可以使用HTTPService组件。这里创建了一个名为`SimpleServiceServlet`的Servlet,负责...
在Flex客户端,我们创建一个`RemoteObject`实例,设置其`destination`属性为配置文件中定义的ID,这样就可以调用Java类的方法了。 ```xml <!-- remoting-config.xml --> <source>...