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

     此文转载自:  http://blog.csdn.net/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>  

 

其中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>  

 

 

取出数据相关代码:

 

  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;  

你可能感兴趣的:(java,UI,xml,Flex,Adobe)