最近由于工作需要开始看Flex的书籍,下面讲讲Flex作为UI然后后台使用Java作为服务器的三种方式,
(1)安装JDK,Tomcat,MyEclipse
(2)安装Flex Builder
(3)在MyEclipse中新建一个Java Web工程,这个工程可以使用SSH架构
(4)代开Flex Builder新建一个Web工程,注意在选择地下的服务器的时候,我们选择”J2EE“服务器,然后选择打出文件的包,导出到原先建的那个java Web工程目录下,这样Flex和Java的工程就搭建好了,下面介绍如何通信
1.使用remoteObject来通信,这种通信适合于Flex和Java之间有很大的数据交互,首先我们需要下载BlazeDS,然后将解压的文件放到WEB-INF文件夹覆盖Java Web工程下的WEB-INF文件夹
(1)新建一个Java类 FlexToJava
public class FlexToJava{
public String pritStr(String felxParam){
return "I am Java Server,Flex Input parameters is"+flexParam ;
}
}
(2)在WEB-INF文件夹的remoting-config.xml文件添加
<destination id="javaObject">
??????? <properties>
??????????? <source>com.test.FlexToJava</source> <!--这个类得路径-->
??????? </properties>
??? </destination>
(3)在Flexbuilder中新建一个application
<?xml version="1.0" encoding="utf-8"?>????
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"?????
?????????????? xmlns:s="library://ns.adobe.com/flex/spark"?????
?????????????? xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">????
?????
??? <fx:Script>????
??????? <![CDATA[????
??????????? import mx.controls.Alert;????
??????????? import mx.rpc.events.ResultEvent;????
?????????????
??????????? protected function myFlex_resultHandler(event:ResultEvent):void{????
??????????????? var name:String=event.result as String;????
??????????????? Alert.show(name);????
??????????? }????
??????????? protected function button1_clickHandler(event:MouseEvent):void???
??????????? {??????
??????????????? flexObject.pritStr(txtName.text);????
??????? ]]>????
??? </fx:Script>????
??? <fx:Declarations>????
??????? <!-- 将非可视元素(例如服务、值对象)放在此处 -->????
??????? <s:RemoteObject id="flexObject" destination="javaOvject" result="myFlex_resultHandler(event)"/>????
??? </fx:Declarations>????
??? <s:Button x="209" y="135" label="按钮" click="button1_clickHandler(event)"/>????
??? <s:TextInput x="166" y="81" id="txtName"/>????
??? <s:Label x="10" y="81" text="请输入内容:" fontSize="15" fontWeight="bold" fontFamily="中易黑体"/>????
</s:Application> ??
2.使用HTTPService使得Flex和Java进行通信
(1)首先我在Java端写一个Servlet
public class JavaServlet extends HttpServlet{
public void doPost(requst,response){
response.getWriter.print("I am Java Server") ;
}
public void doGet(request,serif; font-size:14px; line-height:28px">doPost(request,response) ;
}
(2)在Web.xml中配置Servlet的访问路径,比如说是/java_servlet
(3)在Flex中新建一个application
<!--flex 与java交互-->

????????<s:HTTPService?id="service"?fault="service_faultHandler(event)"?result="service_resultHandler(event)"?url="http://localhost:8080/flexdemo/java_servlet">

????????????

????????</s:HTTPService>
result:是处理返回的函数,faul: 是处理出错的函数。
3.Flex与WebService进行交互

<!--flex与webservice交互这里调用一个天气预报的webservice-->

????????s:WebService?="ws"?

??????????????????????wsdl="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl"?

??????????????????????fault="ws_faultHandler(event)"?

??????????????????????result="ws_resultHandler(event)"?

??????????????????????showBusyCursor="true"

?????????????第二种调用webservice的方法<s:operation>?<s:operation?name="getWeatherbyCityName">?webservice中的方法名s:operation?name="getWeatherbyCityName"

????????????????传递的参数s:request

????????????????????参数名称必须与webservice中定义的参数名一致否则调用不成功报错theCityName

????????????????????????{city.text}

????????????????????s:operations:WebService>