都说flex技术很火,是未来RIA发展的必然趋势,必将大量使用,所以咋也扫扫盲,入个门,以备不时之需,哈哈,废话不说了。开始实战flex和java的通信,说白了就是flex和java的交互。
这次要实现的功能是:由flex给后台java发送一个请求,java返回数据给flex,再由flex对数据进行展示。就是这么简单。
1.新建一个flex项目(这部分涉及到flex和java的整合,参考我的博文flex与java的两种整合方式总结 )
2.项目建立后的结构图如下:
3.在src目录下编写java类,如下,这样java部分的开放完毕
package com.yjck.flex; public class HelloJavaFlex { public String helloJavaFlex(String name){ System.out.println("hello world"); return "Hello,'" + name + "':JAVA和FLEX可以通信了"; } }
4.配置flex的remoting-config.xml文件,目录在WebContent\WEB-INF\flex文件下代码如下
<?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> <!-- 这里是配置远程的对象,也就是java类,destination在flex的前台要使用 --> <destination id="helloJavaFlex"> <properties> <source>com.yjck.flex.HelloJavaFlex</source> </properties> </destination> </service>
5.书写mxml文件,代码如下
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ import mx.controls.Alert; import mx.rpc.events.ResultEvent; public function remotingHelloJavaFlex():void{ var logNam: String = namInputTxt.text; remoteHello.helloJavaFlex(logNam); remoteHello.addEventListener(ResultEvent.RESULT, getRoHelloRes); } private function getRoHelloRes(e: ResultEvent) :void { Alert.show(e.result.toString()); } ]]> </mx:Script> <mx:RemoteObject destination="helloJavaFlex" id="remoteHello" endpoint="http://localhost:8080/HelloFlexPro/messagebroker/amf"></mx:RemoteObject> <mx:Button label="JAVA+FLEX通信" click="remotingHelloJavaFlex();" x="121" y="96" fontSize="12 width="209"/> <mx:Label text="姓名:" x="121" y="55" fontSize="12"/> <mx:TextInput id="namInputTxt" x="170" y="55"/> <mx:TextInput x="166" y="181" id="show"/> </mx:Application>
6.完成,最后运行下看效果:
再上传一个使用datagrid的应用实例。