FLEX-ComboBox绑定JAVA返回的数据源(RemoteObject)

本文介绍了一个使用Flex与Java进行交互的示例,展示了如何从Java后台获取数据并填充到Flex界面的ComboBox组件中。具体步骤包括Java后台从数据库读取职位信息,通过AMF协议传递给Flex应用,最后绑定到ComboBox上。

     此文转载自:  http://blog.youkuaiyun.com/matianyi0307/archive/2009/03/20/4008228.aspx

 

     场景:底层通过JAVA从数据库中取出Authority中的职位信息(rid: 职位ID,rname:职位名称),将其存入HashMap中,并将HashMap全部存入一个List返回给Flex,并绑定在ComboBox上。

FLEX Display组件:

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="712" height="563" showCloseButton="true" title="新建用户" x="288" y="226" xmlns:ns1="ui.panel.admin.*" initialize="getPos()">  
  4.     <mx:Script>  
  5.         <[CDATA[   
  6.             import mx.collections.ArrayCollection;   
  7.             import mx.controls.List;   
  8.             import mx.rpc.events.ResultEvent;   
  9.             import mx.controls.Alert;   
  10.             [bindable]   
  11.             private var posArray:ArrayCollection = new ArrayCollection();   
  12.                            
  13.             function getPos():void{   
  14.                 hasuser.getRoles();   
  15.             }   
  16.                
  17.             function getPosition(event:ResultEvent):void{   
  18.                 posArray = event.result as ArrayCollection;   
  19.                 position.dataProvider = posArray;   
  20.             }   
  21. function close():void{   
  22.                                 trace(""+position.selectedItem.rid);   
  23.                         }   
  24.         ]]>  
  25.     </mx:Script>  
  26.     <mx:RemoteObject id="hasuser" destination="islogin">  
  27.     <mx:method name="getRoles" result="getPosition(event)"/>  
  28.     </mx:RemoteObject>  
  29.            
  30.     <mx:ComboBox x="426" y="249" id="position" width="160.75" editable="false" color="#0B333C" fontSize="12" prompt="请选择职位..." fontWeight="bold" labelField="rname" close="close()"></mx:ComboBox>  
  31. </mx:TitleWindow>  

<?xml version="1.0" encoding="utf-8"?> <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="712" height="563" showCloseButton="true" title="新建用户" x="288" y="226" xmlns:ns1="ui.panel.admin.*" initialize="getPos()"> <mx:Script> <[CDATA[ import mx.collections.ArrayCollection; import mx.controls.List; import mx.rpc.events.ResultEvent; import mx.controls.Alert; [bindable] private var posArray:ArrayCollection = new ArrayCollection(); function getPos():void{ hasuser.getRoles(); } function getPosition(event:ResultEvent):void{ posArray = event.result as ArrayCollection; position.dataProvider = posArray; } function close():void{ trace(""+position.selectedItem.rid); } ]]> </mx:Script> <mx:RemoteObject id="hasuser" destination="islogin"> <mx:method name="getRoles" result="getPosition(event)"/> </mx:RemoteObject> <mx:ComboBox x="426" y="249" id="position" width="160.75" editable="false" color="#0B333C" fontSize="12" prompt="请选择职位..." fontWeight="bold" labelField="rname" close="close()"></mx:ComboBox> </mx:TitleWindow>

 

其中close()函数是来测试选中项目的值。

 

RemoteObject配置:

 

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <service id="remoting-service" class="flex.messaging.services.RemotingService">  
  3.   
  4.     <adapters>  
  5.         <adapter-definition id="java-object"  
  6.             class="flex.messaging.services.remoting.adapters.JavaAdapter"  
  7.             default="true" />  
  8.     </adapters>  
  9.   
  10.     <default-channels>  
  11.         <channel ref="my-amf" />  
  12.     </default-channels>  
  13.   
  14.     <destination id="islogin">  
  15.         <properties>  
  16.             <source>com.pmo.action.RolesAction</source>  
  17.         </properties>  
  18.     </destination>  
  19.   
  20. </service>  

<?xml version="1.0" encoding="UTF-8"?> <service id="remoting-service" class="flex.messaging.services.RemotingService"> <adapters> <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true" /> </adapters> <default-channels> <channel ref="my-amf" /> </default-channels> <destination id="islogin"> <properties> <source>com.pmo.action.RolesAction</source> </properties> </destination> </service>

 

 

取出数据相关代码:

 

  1. List<Authority> l = q.list();   
  2.            
  3.         List l2 = null;   
  4.         if (l.size()!=0) {   
  5.                
  6.             l2 = new ArrayList();   
  7.             for(int i=0;i<l.size();i++){   
  8.                 HashMap hm = new HashMap();   
  9.                 hm.put("rid",""+((Authority)l.get(i)).getRid());   
  10.                 hm.put("rname",""+((Authority)l.get(i)).getRname());   
  11.                 l2.add(hm);   
  12.             }   
  13.         }   
  14. return l2;  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值