一、建立Flex与Java交互的工程。

本文中讲到的交互是利用Blazeds的,因为这个是免费的,呵呵,我是穷人。

首先就是去下载Blazeds的压缩包,这个可以从官网或者CSDN、JavaEye上下到。解压缩这个包,将里面的Blazeds.war解压,后面建立工程时要使用。

在MyEclipse中建立一个web工程,名为FlexTest。(注意:这个工程的JDK一定是1.5或以上版本,本文使用6.0)

将刚才解压的Blazeds.war包中的“META-INF”与“WEB-INF”文件夹以及文件夹中的内容拷贝到工程的WebRoot下。WEB-INF中包含有Flex的配置文件以及Blazeds需要的Jar包。这时我们就可以在这个工程中写入Java代码了。本文以一个用户列表为例,建立用户实体类。代码如下:

代码

1 package com.rocd.flex.entity;

2

3  import java.io.Serializable;

4

5 public class UserBean implements Serializable {

6 private String userName;

7 private String password;

8 private int age;

9 private String email;

10

11 public String getUserName() {

12 return userName;

13 }

14

15 public void setUserName(String userName) {

16 this.userName = userName;

17 }

18

19 public String getPassword() {

20 return password;

21 }

22

23 public void setPassword(String password) {

24 this.password = password;

25 }

26

27 public int getAge() {

28 return age;

29 }

30

31 public void setAge(int age) {

32 this.age = age;

33 }

34

35 public String getEmail() {

36 return email;

37 }

38

39 public void setEmail(String email) {

40 this.email = email;

41 }

42 }

43

注意,由于这个实体类需要当做Java代码中方法的返回值传递给Flex中的AS代码,所以需要继承Serializable接口,否则将导致异常的发生。

然后,在建立一个供Flex调用的Java类。代码如下

代码

1 package com.rocd.flex.biz;

2

3 import java.util.ArrayList;

4 import java.util.List;

5

6 import com.rocd.flex.entity.UserBean;

7

8 public class UserManager {

9 public List getUserList() {

10 List list = new ArrayList();

11 for (int i = 0; i < 10; i++) {

12 UserBean user = new UserBean();

13 user.setUserName("用户" + i);

14 user.setPassword("123");

15 user.setAge(20 + i);

16 user.setEmail("user" + i + "@aaa.com");

17 list.add(user);

18 }

19 return list;

20 }

21 }

22

这里就不连接数据库去操作了,因为本文重点放在Flex调用Java上,所以写个桩数据用以测试。

写完了这两个类,就需要在WebRoot/WEB-INF/flex/remoting-config.xml中配置用以调用这个Java类的信道了。具体代码如下:

代码

1 <?xml version="1.0" encoding="UTF-8"?>

2

3 class="flex.messaging.services.RemotingService">

4

5

6 class="flex.messaging.services.remoting.adapters.JavaAdapter"

7 default="true"/>

8

9

10

11

12

13

14 com.rocd.flex.biz.UserManager

15

16

17

其中destination就是信道,properties是可以配置多个Java类,source是配置要调用Java类的包路径。

到此,Java部分的代码就写完了。下面是Flex中的代码。

在Flex Builder中创建一个Flex工程。名称为FlexApp。如图所示

注意Project Location的Folder要选择MyEclipse建立的Web工程的WebRoot下。Server technology选择J2EE

点击[Next]按钮进入下一页。如图

注意Server location中Root folder要选择Java Web工程的WebRoot路径。Root URL是Java web工程的访问路径,由于使用的是Tomcat服务器,工程名为FlexTest,所以路径是http://localhost:8080/FlexTest/,而

Context root则是Java Web项目的工程名。完成后点击那个[Validate Configuration]进行验证,如果窗口上方显示如上图所示的“黄三角”就说明可以进行下一步操作了。

顺利建立完Flex工程后,需要注意是否报错,如果报错,请注意调整Flex SDK的版本。

没问题后,就要创建一个AS的类,用来接收Java程序的返回值了,也就是那个UserBean。代码如下:

代码

package com.rocd.flex.entity

{

[Bindable]

[RemoteClass(alias="com.rocd.flex.entity.UserBean")]

public class UserBean

{

public var userName:String;

public var password:String;

public var age:int;

public var email:String;

}

}

这里[Bindable]是可绑定的,[RemoteClass(alias="com.rocd.flex.entity.UserBean")]是和Java代码中的UserBean类关联起来。这样就可以利用类型转换来将Java对象转换为AS对象了。

现在让我们在Flex中调用这个Java代码吧。代码如下:

1 <?xml version="1.0" encoding="utf-8"?>

2

3 fontSize="12" initialize="init()">

4

5

6 import com.rocd.flex.entity.UserBean;

7 import mx.collections.ArrayCollection;

8 import mx.rpc.events.ResultEvent;

9

10 private function init():void

11 {

12 UserManager.getUserList();

13 UserManager.addEventListener(ResultEvent.RESULT,getUserList);

14 }

15

16 private function getUserList(event:ResultEvent):void

17 {

18 var userList:ArrayCollection = ArrayCollection(event.result);

19 var userList_FlexData:ArrayCollection = new ArrayCollection();

20 for (var i:int = 0; i < userList.length; i++)

21 {

22 var user:UserBean = UserBean(userList.getItemAt(i));

23 userList_FlexData.addItem(user);

24 }

25 dataGrid.dataProvider = userList_FlexData;

26 }

27 ]]>

28

29

30 showBusyCursor="true" />

31

32

33

34

35

36

37

38

39

40

41

42

启动Tomcat服务器后运行这个Flex程序,如下图所示:

我对Flex与Java交互这块还不是很熟悉,所以有什么不对的地方,或者有更简单的方式,请大家给出建议。

flex java oracle_Flex使用Blazeds与Java交互及自定义对象转换详解-DATAGRID读取ORACLE数据...相关推荐

  1. blazeds调用java_Flex使用Blazeds与Java交互及自定义对象转换详解(转)

    一.建立Flex与Java交互的工程. 本文中讲到的交互是利用Blazeds的,因为这个是免费的,呵呵,我是穷人. 首先就是去下载Blazeds的压缩包,这个可以从官网或者CSDN.JavaEye上下 ...

  2. java int byte数组_Java 中int与byte数组转换详解

    1.与运算符的理解(&): 参加运算的两个数据,按二进位进行"与"运算.如果两个相应的二进位都为1,则该位的结果值为1,否则为0.即 0&0=0:0&1=0 ...

  3. java获取request body_HttpServletRequest获取body内容(字符串/二进制)详解

    首页 > Java Web > SpringMvc应用 > HttpServletRequest HttpServletRequest获取body内容(字符串/二进制)详解 获取HT ...

  4. java中String s=abc及String s=new String(abc)详解

    java中String s="abc"及String s=new String("abc")详解 1.   栈(stack)与堆(heap)都是Java用来在R ...

  5. java一个方法排他调用_Java编程实现排他锁代码详解

    一 .前言 某年某月某天,同事说需要一个文件排他锁功能,需求如下: (1)写操作是排他属性 (2)适用于同一进程的多线程/也适用于多进程的排他操作 (3)容错性:获得锁的进程若Crash,不影响到后续 ...

  6. 蓝桥杯java B组历年省赛真题汇总及题目详解

    蓝桥杯java B组历年省赛真题汇总及题目详解 2019年第十届蓝桥杯省赛真题详解 2018年第九届蓝桥杯省赛真题详解 2017年第八届蓝桥杯省赛真题详解 2016年第七届蓝桥杯省赛真题详解 2015 ...

  7. 【JAVA秘籍心法篇-Spring】Spring XML解析源码详解

    [JAVA秘籍心法篇-Spring]Spring XML解析源码详解 所谓天下武功,无坚不摧,唯快不破.但有又太极拳法以快制慢,以柔克刚.武功外式有拳打脚踢,刀剑棍棒,又有内功易筋经九阳神功.所有外功 ...

  8. java中北大学ppt总结+课后习题第二章(小宇特详解)

    java中北大学ppt总结+课后习题第二章(小宇特详解) 基本数据类型 Java语言有8种基本数据类型. 逻辑类型:boolean.1字节 整数类型: 1字节整数类型:byte. 2字节整数类型:sh ...

  9. 64位JVM的Java对象头详解

    关注"Java艺术"一起来充电吧! 我们编写一个Java类,编译后会生成.class文件,当类加载器将class文件加载到jvm时,会生成一个Klass类型的对象(c++),称为类 ...

最新文章

  1. BIZTALK项目中WEB引用WEBSERVICES服务时候报错
  2. ThreadLocal的使用场景
  3. 更加优雅的iOS自动布局
  4. PHP数组键值双引号单引号区别
  5. ML之xgboostGBM:基于xgboostGBM算法对HiggsBoson数据集(Kaggle竞赛)训练(两模型性能PK)实现二分类预测
  6. 三个免费图片网站:特别适合场景图
  7. CISCO 2950,3550交换机的端口隔离
  8. python 给word添加背景图片_Python如何使用word文档插入图片和表格
  9. Android之PhotoView使用(原创)
  10. 10.31T2 点双联通分量+预处理前缀+二分答案
  11. 链表排序c++代码_[链表面试算法](一) 链表的删除-相关题型总结(6题)
  12. [react] React Fiber它的目的是解决什么问题?
  13. GEOLayers3 for Mac - 世界地图任意位置路径展示ae动画
  14. jQuery学习之一---选择器
  15. 什么?你的电商网页不够时尚?看这里
  16. SQL SERVER 2008传递表值参数
  17. 90%测试猿都想学的Jmeter技能,你get吗?
  18. 电话系统服务器,局域网电话系统的两种解决方案——是否需要I
  19. 计算机的视觉应用研究,计算机视觉技术应用研究.doc
  20. MPAA正在对BT下毒手,BT大站被警方关闭

热门文章

  1. WAP端 touch事件触发顺序记录
  2. PHP_正则_获取图片所有属性
  3. [转]Android 之 Window、WindowManager 与窗口管理
  4. jsonp的简单学习
  5. LVM( Logical Volume Manager )配置案例(on RHEL4)
  6. JavaScript工具
  7. sohu读博——周忆清
  8. python中import的作用_python使用import报错是什么原因
  9. jupyter notebook 安装代码提示功能
  10. windows 端微信多开