最近由于工作需要开始看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,response){
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 id="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}
</theCityName>
</s:request>
</s:operation>
</s:WebService>