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

一、建立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代码了。本文以一个用户列表为例,建立用户实体类。代码如下:

48304ba5e6f9fe08f3fa1abda7d326ab.png

961ddebeb323a10fe0623af514929fc1.png代码

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

961ddebeb323a10fe0623af514929fc1.png代码

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

961ddebeb323a10fe0623af514929fc1.png代码

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

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

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

06c8bfd004d70854ac3d5983099c3b72.png

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

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

2d9204318b6ddb1f1fe0763022ebfd5d.png

注意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。代码如下:

48304ba5e6f9fe08f3fa1abda7d326ab.png

961ddebeb323a10fe0623af514929fc1.png代码

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;

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

04d61613a38bcfac1617184305982fed.png

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

lfu算法实现java_LFU五种实现方式,从简单到复杂

前言最近刷力扣题&#xff0c;对于我这种 0 基础来说&#xff0c;真的是脑壳疼啊。这个月我估计都是中等和困难题&#xff0c;没有简单题了。幸好&#xff0c;力扣上有各种大牛给写题解。看着他们行云流水的代码&#xff0c;真的是羡慕不已。让我印象最深刻的就是人称 “甜姨”…

java控制台高级_K9s Kubernetes的高级控制台

K9s Kubernetes CLI&#xff0c;以个性化方式管理您的集群&#xff01;参考&#xff1a;Why K9s&#xff1f;首先我们得面对现实——Kubernetes及其周边生态系统的运营方式正变得越来越复杂。集群管理需要大量工具加以配合。当我在集群之上进行日常运营时&#xff0c;和大家一样…

java缓存回收_java缓存应用 - 阿亮ing的个人空间 - OSCHINA - 中文开源技术交流社区...

缓存回收策略1.基于空间设置缓存的存储空间&#xff0c;超过容量限制按照一定的规则去移除。2.基于容量当缓存条数超过规定容量按照一定的规则去移除旧数据。3.基于时间(存活时间空闲时间)TTl(Time To Live):存活期&#xff0c;缓存数据最后更新时间到指定时间如果没有更新或创…

php 生成打印送货单,PHP输出PDF打印HTML5+CSS3打印格式控制

ERP系统进入尾声&#xff0c;各种送货单、退货单、合同、对账单等等一系列的东东排着队调打印格式。HTML5CSS3已经这样流行&#xff0c;然则眼下&#xff0c;基于CSS3的打印控制&#xff0c;居然还处于原始部落阶段&#xff0c;Chrome、Firefox、Edge等连简单的page都支持得不完…

备案php代码,备案查询API PHP代码

在线演示http://tool.ayangw.com/beian/?urlqq.com使用方法1.创建一个php文件&#xff0c;比如beian.php&#xff0c;将下方代码复制2.访问接口域名/beian.php?urlqq.comPHP代码<?php /*** 0en.cn*/error_reporting(0);$u $_GET[url];var_dump();if(!isset($u)){echo ?…

帝国cms php替换,帝国CMS内容关键字替换图片标签解决方法

1、在 e/class/userfun.php 里面增加//替换正文IMG里的ALT内容functionuser_imgalt($mid,$f,$isadd,$isq,$value,$cs){$title$_POST[title];$htmls$value;$pattern "/]>/";preg_match_all($pattern, $htmls, $matches);for($i0; $i<count($matches[0]); $i) {p…

php类的举例,用类来代替递归方法,用php举例_php _ 搞代码

问题&#xff1a;一个楼梯有n个台阶&#xff0c;每次上一个或两个台阶&#xff0c;共有多少种上法, 每种走法的步骤是什么样的&#xff1f;这个简单问题&#xff0c;我们通常的方法是写一个递归调用&#xff0c;简单明了。但是&#xff0c;这里通过类的叠加来实现&#xff0c;虽…

easyexcel安全扫描报php,easyExcel使用以及踩过的坑

easyExcel介绍:Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存&#xff0c;poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题&#xff0c;但POI还是有一些缺陷&#xff0c;比如07版Excel解压缩以及解压后存储都是…

用python做人脸识别的程序怎么做,10分钟学会使用python实现人脸识别(附源码)

前言今天&#xff0c;我们用Python实现简单的人脸识别技术&#xff01;Python里&#xff0c;简单的人脸识别有很多种方法可以实现&#xff0c;依赖于python胶水语言的特性&#xff0c;我们通过调用包可以快速准确的达成这一目的。这里介绍的是准确性比较高的一种。一、首先梳理…

matlab是那个国家,这是一个老外写的利用曲率来识别硬币的MATLAB程序。作者所在国家的硬币偏黄色,拍摄的时候反光比较少...

这是一个老外写的利用曲率来识别硬币的MATLAB程序。作者所在国家的硬币偏黄色&#xff0c;拍摄的时候反光比较少2016-08-22 0 0 0 暂无评分其他1积分下载如何获取积分&#xff1f;这是一个老外写的利用曲率来识别硬币的MATLAB程序。作者所在国家的硬币偏黄色&#xff0c;拍摄的…

oracle中12523,【Oracle】静态监听导致的ORA-12523错误

今天配置完共享服务器模式之后发现登录过程中报错ORA-12523&#xff0c;排查错误之后发现是静态监听惹的祸。本机之上有两个监听&#xff0c;一个静态监今天配置完共享服务器模式之后发现登录过程中报错ORA-12523&#xff0c;排查错误之后发现是静态监听惹的祸。本机之上有两个…

线性回归中oracle性质,66.Oracle数据库SQL开发之 高级查询——使用线性回归函数...

66.Oracle数据库SQL开发之 高级查询——使用线性回归函数线性回归函数可以用普通最小平方回归曲线拟合一组数值对。线性回归函数可用于聚合、串口或报表函数。如下图1&#xff1a;例如&#xff1a;storePDB1> selectprd_type_id,regr_avgx(amount,month) as avgx,regr_avgy(…

linux 源码目录结构,分析Android 源代码编译前后的目录结构

我们看没有编译前的项目目录大致的情况如下 &#xff1a;在树结构中我们可以了解的有如下一些信息分析&#xff1a;1. getSplashy 项目名称&#xff1b;2. src 项目程式&#xff1b;3. com 早…

linux vps 运行exe文件夹,在centos环境下运行.exe文件

首先要了解一下Wine&#xff1a;Wine (“Wine Is Not an Emulator” 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Linux&#xff0c;Mac OSX 及 BSD 等)上运行 Windows 应用的兼容层。Wine (Wine Is Not an Emulator)[即Wine不是一个模拟器]是一个在Linux和U…

linux服务器u盘启动项检测不到,将U盘设置为第一启动项之后却检测不到U盘怎么办?...

对于如何使用U盘装系统&#xff0c;想必看过小编之前介绍的朋友应该大致都清楚了吧?虽然说咱们使用U盘装系统的操作步骤还是比较简单的&#xff0c;但是却必须要满足一个条件&#xff0c;那便是将咱们的U盘设置为第一启动项&#xff0c;那么如何进行设置呢?这便需要在咱们win…

linux内核io源码,Linux Kernel do_io_submit()函数整数溢出漏洞

发布日期&#xff1a;2010-09-21更新日期&#xff1a;2010-09-27受影响系统&#xff1a;Linux kernel 2.6.x不受影响系统&#xff1a;Linux kernel 2.6.36-rc4描述&#xff1a;--------------------------------------------------------------------------------BUGTRAQ ID: …

linux6无法启动iscsi服务,RHEL6下安装配置ISCSI服务器

1.安装所需软件:yum –y install scsi-target-utils iscsi-initiator-utils功能说明:scsi-target-utils&#xff1a;用来将 Linux 系统仿真成为 iSCSI target 的功能&#xff1b;iscsi-initiator-utils&#xff1a;挂载来自 target 的磁盘到 Linux 本机上。2.target的设定:----…

linux socat rpm,RabbitMQ系列(三)RabbitMQ Server的安装(基于Linux RPM)

提示&#xff1a;在Fedora和RHEL仓库中包含了RabbitMQ&#xff0c;但这些版本往往是滞后的且不再被支持&#xff0c;我们建议你使用PackageCloud或者Bintray的Yum仓库进行安装&#xff1b;RabbitMQ RPM包将需要sudo特权来安装和管理。在没有sudo的环境中&#xff0c;可以考虑使…

每天一个linux命令博客nano,11 个鲜为人知的 Linux 命令(1)

英文&#xff1a;Tecmint&#xff0c;编译&#xff1a;Linux中国linux.cn/article-2258-1.html如有好文章Linux命令行吸引了大多数Linux爱好者。一个正常的Linux用户一般掌握大约50-60个命令来处理每日的任务。Linux命令和它们的转换对于Linux用户、Shell脚本程序员和管理员来说…

android 标题样式,Android定义各种样式的标题栏:requestWindowFeature()

最近在网上看到一篇介绍Android window的requestWindowFeature()的使用方法&#xff0c;共享出来大家学习学习requestWindowFeature(Window.FEATURE_LEFT_ICON);setContentView(R.layout.dialog_activity);getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, a…