实现Flex Java 数据交换
Flex 是一个高效、免费的开放源框架,可用于构建具有表现力的Web 应用程序,这些应用程序利用 Adobe Flash Player 和Adobe AIR; 运行时跨浏览器、桌面和操作系统实现一致的部署。虽然只能使用 Flex 框架构建 Flex 应用程序,Adobe Flash Builder™ 软件可以通过智能编码、交互式遍历调试以及可视设计用户界面布局等功能加快开发。
1、 代码:
1.1 、先建一个Mxml 文件,代码如下:
<?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">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
//成功返回结果时调用该函数
private function getData_Result(event:ResultEvent):void{
replyData_txt.text =event.target.lastResult.replyData;
}
//返回错误信息时调用该函数
private function getData_Fault(event:FaultEvent):void{
replyData_txt.text =event.fault.toString(); //打印错误消息
}
//发送数据
private function send_data():void{
myRequest.send();
}
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 注:端口和项目改HTTPService 的url属性-->
<s:HTTPService id="myRequest" url="http://localhost:8081/flexToJava/index.jsp"
useProxy="false" showBusyCursor="true"
resultFormat="flashvars" method="POST"
result="getData_Result(event)" fault="getData_Fault(event)">
<s:request xmlns="">
<clientData>{clientData_txt.text}</clientData>
</s:request>
</s:HTTPService>
</fx:Declarations>
<s:Label x="324" y="173" text="客户端:" width="58" height="28" fontSize="13" verticalAlign="middle"/>
<s:Button x="375" y="313" label="获取后台Java数据" width="156" height="30" click="send_data();"/>
<s:TextInput x="375" y="177" width="156" id="clientData_txt"/>
<s:TextArea x="375" y="207" width="156" height="93" id="replyData_txt"/>
<s:Label x="324" y="222" width="58" height="26" text="服务器:
" fontSize="13"/>
<s:Label x="328" y="119" text="Flex Java数据交互" width="213" height="45" verticalAlign="middle" fontSize="20"/>
</s:Application>
<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">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
//成功返回结果时调用该函数
private function getData_Result(event:ResultEvent):void{
replyData_txt.text =event.target.lastResult.replyData;
}
//返回错误信息时调用该函数
private function getData_Fault(event:FaultEvent):void{
replyData_txt.text =event.fault.toString(); //打印错误消息
}
//发送数据
private function send_data():void{
myRequest.send();
}
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 注:端口和项目改HTTPService 的url属性-->
<s:HTTPService id="myRequest" url="http://localhost:8081/flexToJava/index.jsp"
useProxy="false" showBusyCursor="true"
resultFormat="flashvars" method="POST"
result="getData_Result(event)" fault="getData_Fault(event)">
<s:request xmlns="">
<clientData>{clientData_txt.text}</clientData>
</s:request>
</s:HTTPService>
</fx:Declarations>
<s:Label x="324" y="173" text="客户端:" width="58" height="28" fontSize="13" verticalAlign="middle"/>
<s:Button x="375" y="313" label="获取后台Java数据" width="156" height="30" click="send_data();"/>
<s:TextInput x="375" y="177" width="156" id="clientData_txt"/>
<s:TextArea x="375" y="207" width="156" height="93" id="replyData_txt"/>
<s:Label x="324" y="222" width="58" height="26" text="服务器:
" fontSize="13"/>
<s:Label x="328" y="119" text="Flex Java数据交互" width="213" height="45" verticalAlign="middle" fontSize="20"/>
</s:Application>
1.2、建议java项目,名为:flexToJava
打开index.jsp 获取客户端Flex发送的消息
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>Flex Java 数据交互</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
String reply_clientData =request.getParameter("clientData"); //接收数据
String returnToFlash ="&replyData=" + reply_clientData +"&";
out.print(returnToFlash); //响应客服端
%>
</body>
</html>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>Flex Java 数据交互</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
String reply_clientData =request.getParameter("clientData"); //接收数据
String returnToFlash ="&replyData=" + reply_clientData +"&";
out.print(returnToFlash); //响应客服端
%>
</body>
</html>
2、效果图