此文转载自: http://blog.youkuaiyun.com/matianyi0307/archive/2009/03/20/4008228.aspx
场景:底层通过JAVA从数据库中取出Authority中的职位信息(rid: 职位ID,rname:职位名称),将其存入HashMap中,并将HashMap全部存入一个List返回给Flex,并绑定在ComboBox上。
FLEX Display组件:
- <?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>
<?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配置:
- <?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>
<?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>
取出数据相关代码:
- List<Authority> l = q.list();
- List l2 = null;
- if (l.size()!=0) {
- l2 = new ArrayList();
- for(int i=0;i<l.size();i++){
- HashMap hm = new HashMap();
- hm.put("rid",""+((Authority)l.get(i)).getRid());
- hm.put("rname",""+((Authority)l.get(i)).getRname());
- l2.add(hm);
- }
- }
- return l2;
本文介绍了一个使用Flex与Java进行交互的示例,展示了如何从Java后台获取数据并填充到Flex界面的ComboBox组件中。具体步骤包括Java后台从数据库读取职位信息,通过AMF协议传递给Flex应用,最后绑定到ComboBox上。
252

被折叠的 条评论
为什么被折叠?



