java与flex交互_Flex4开发笔记(与JAVA交互)

(由于本人也是第一次接触flex开发,因此将开发过程中问题记录留档)

一.数据交换过程

借助BlazeDS可以实现flex与java之间的数据交互,大体流程如下:

1.导入blazeds的文件(配置web.xml/MANIFEST.MF)。

2.编写java类

3.在remoting-config.xml中注册java类

4.在mxml文件中调用java类的函数

举例说明:

java类

public classOperationInfo {/***

* getObjectList:获取操作对象列表

* Process: (TODO 这里描述这个方法的执行流程).

* Call: (TODO 这里描述这个方法调用的其他类.方法).

*

*@returnTODO

*@sinceJDK 1.6*/

public ArrayListgetNodeList(String type) {

ArrayList result = new ArrayList();

String tid= (String) session.get("taskId");

String sql= "select data_name from。。";

Object[] params= newObject[]{type,tid};

BaseDao dao= newBaseDao();

result= dao.find(sql, params, "data_name");returnresult;

}/***

* getObjectList:获取数据元素列表

* Process: (TODO 这里描述这个方法的执行流程).

* Call: (TODO 这里描述这个方法调用的其他类.方法).

*

*@returnTODO

*@sinceJDK 1.6*/

public ArrayListgetDataElementList(String node) {

ArrayList result = new ArrayList();

String sql= "select element_name from 。。";

Object[] params= newObject[]{node};

BaseDao dao= newBaseDao();

result= dao.find(sql, params, "element_name");returnresult;

}

}

remoting-config.xml (id是在mxml文件中调用该java类时的标识,source是java类的路径)

com.flow.dao.OperationInfo

.mxml

//注册java类,destination值为java类在xml文件中的id,id值是在本文件中的标识

private function typeChange():void{var type:String =object_type.selectedItem.label;//Alert.show(type);

operParams.getNodeList(type);

operParams.addEventListener(ResultEvent.RESULT,showNodeList);

}private function showNodeList(e: ResultEvent):void{

nodeList.dataProvider=ArrayCollection(e.result);if(operParams.hasEventListener(ResultEvent.RESULT)){

operParams.removeEventListener(ResultEvent.RESULT,showNodeList);

}

}private function nodeChange():void{var node:String =nodeList.selectedItem;

operParams.getDataElementList(node);

operParams.addEventListener(ResultEvent.RESULT,showElementList);

}private function showElementList(e: ResultEvent):void{

dataElementList.dataProvider=ArrayCollection(e.result);

operParams.removeEventListener(ResultEvent.RESULT,showElementList);

}

]]>

二.备注

1.java中将结果装入ArrayList中并发送至flex端,接收时可进行转型ArrayCollection(e.result),再作为dataProvider赋给DropDownList。

2.java中map类型的数据在flex可以以object类型接收。每一个key值,都相当于Object的一个属性名,key对应的value,相当于属性值。

public Map>getParams(){

Map> map = new HashMap>();

map.put("oper_object_class", getOperObjectClass());

map.put("oper_period", getOperPeriod());returnmap;

}

private function fillParams(e: ResultEvent):void{var map:Object = e.result as Object;//准备“操作对象类型”参数

target_sort.dataProvider =ArrayCollection(map.oper_object_class);//准备"发生时间区间"参数

operate_time1.dataProvider =ArrayCollection(map.oper_period);

operate_time2.dataProvider=ArrayCollection(map.oper_period);

operate_time3.dataProvider=ArrayCollection(map.oper_period);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值