实现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="服务器:&#xd;" 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>

   

     2、效果图

 

       

 

 

posted @ 2011-03-21 17:55  kanjc  阅读(721)  评论(0编辑  收藏  举报