由于Flex只是一种客户端技术其本身并不能直接同数据库交互,在实际的应用开发过程中Flex提供了如URLRequest、HTTPService、RemoteObject、WebService等类以实现同服务器的通讯和数据交互,下面做一些介绍和实例解析:
1、使用HTTPService组件同服务器交互
使用过程中在程序中添加一个HTTPService组件,设置它的请求接收数据的URL 调用Send方法发送请求,设置result和fault事件函数接收ResultEvent和FaultEvent对象获取返回数据或捕获错误
HTTPService官方帮助文档http://livedocs.adobe.com/flex/3/html/help.html?content=data_access_2.html
HTTPService组件相关属性和事件:
- <mx:HTTPService
- Properties
-
concurrency="multiple|single|last"
-
contentType="application/x-www-form-urlencoded|application/xml"
-
destination="DefaultHTTP"
-
id="No default."
-
method="GET|POST|HEAD|OPTIONS|PUT|TRACE|DELETE"//请求数据的HTTP头
-
resultFormat="object|array|xml|e4x|flashvars|text"
-
showBusyCursor="false|true"
-
makeObjectsBindable="false|true"
-
url="No default." //请求的URL可以是PHP,ASPX,JSP....
-
useProxy="false|true"
-
xmlEncode="No default."
-
xmlDecode="No default."
- Events
-
fault="No default." //请求发行错误时触发的事件
-
result="No default." //请求完成后触发的事件以处理返回结果
-
/>
完成以下示例要引用到的Flex包
- import mx.rpc.events.FaultEvent;
- import mx.collections.XMLListCollection;
- import flash.events.Event;
- import mx.utils.URLUtil;
- import mx.collections.ArrayCollection;
- import mx.rpc.events.ResultEvent;
2、应用示例一(向服务器发送请求并传递参数):
服务器端代码:
- protected void Page_Load(object sender, EventArgs e)
- {
-
-
string rs = String.Format("name={0};age={1};address={2}",Request.QueryString["name"],
-
Request.QueryString["age"],
-
Request.QueryString["address"]);
- Response.ClearContent();
-
Response.ContentType = "text/plain";
-
Response.Write(rs);
- Response.End();
- }
Felx代码:
引入HTTPService组件(<mx:request></mx:request>节点中是请求的参数):
- <mx:HTTPService id="hsText" url="http://localhost:2222/FlexService/TextFrm.aspx" resultFormat="object" result="hsResultTextHandler(event);" fault="hsResultError(event)" >
-
<mx:request xmlns="">
-
<name>Peter</name>
-
<age>15</age>
-
<address>ShenZhen GuangDong China</address>
-
</mx:request>
-
</mx:HTTPService>
Flex中发送请求:
- private function getText():void
- {
- hsText.send();
-
labMsg.alpha = 1;
- }
Flex中接收返回数据:
- private function hsResultTextHandler(e:ResultEvent):void
- {
-
var o:Object = URLUtil.stringToObject(String(e.result));
- txtName.text = o.name;
- txtAge.text = o.age;
- txtAddress.text = o.address;
- labMsg.alpha = 0;
- }
Flex中错误处理:
- private function hsResultError(e:FaultEvent):void
- {
-
Alert.show(e.message.toString());
-
- labMsg.alpha = 0;
- }
3、应用示例二(向服务器发送请求返回XML数据并绑定到Grid中):
服务器端代码:
- protected void Page_Load(object sender, EventArgs e)
- {
-
String s = @"<?xml version=""1.0"" encoding=""utf-8""?>
-
<EV_ChartData_Scatter xmlns=""http:
-
<ScatterItem id=""0"">
- <CAN_ITEM_ID>561</CAN_ITEM_ID>
- <CAN_ITEM_NAME>主控ECU通讯状况</CAN_ITEM_NAME>
- <ITEM_VALUE>0</ITEM_VALUE>
- <MATCH_VALUE>正常</MATCH_VALUE>
- </ScatterItem>
-
<ScatterItem id=""1"">
- <CAN_ITEM_ID>561</CAN_ITEM_ID>
- <CAN_ITEM_NAME>主控ECU通讯状况</CAN_ITEM_NAME>
- <ITEM_VALUE>1</ITEM_VALUE>
- <MATCH_VALUE>丢包</MATCH_VALUE>
- </ScatterItem>
- </EV_ChartData_Scatter>";
- Response.ClearContent();
-
Response.ContentType = "text/xml";
- Response.Write(s);
- Response.End();
- }
Felx代码:
引入HTTPService组件
- <mx:HTTPService id="hsXML" url="http://localhost:2222/FlexService/XMLFrm.aspx" resultFormat="object" result="onXMLResult(event);" />
Flex中发送请求:
- private function getXML():void
- {
- hsXML.send();
- labMsg.alpha = 1;
- }
Flex中接收返回数据:
- [Bindable]
-
private var scatters:ArrayCollection;
-
private function onXMLResult(e:ResultEvent):void
- {
- scatters = e.result.EV_ChartData_Scatter.ScatterItem;
- }
Flex中绑定Grid代码:
- <mx:Canvas x="400" y="0" width="350" height="200" borderColor="#000000" themeColor="#DCD0D0" backgroundColor="#84DACF">
-
<mx:DataGrid x="10" y="10" width="333" id="grid1" dataProvider="{scatters}" height="140">
- <mx:columns>
-
<mx:DataGridColumn headerText="CAN_ITEM_ID " dataField="CAN_ITEM_ID" />
-
<mx:DataGridColumn headerText="CAN_ITEM_NAME " dataField="CAN_ITEM_NAME" />
-
<mx:DataGridColumn headerText=" MATCH_VALUE" dataField="MATCH_VALUE" />
- </mx:columns>
- </mx:DataGrid>
-
<mx:Button x="148" y="160" label="getXML" id="btnGetXML" click="getXML();"/>
- </mx:Canvas>
最终结果:
分享到:
相关推荐
在Flex应用中,与后台服务器的交互是必不可少的功能,以便获取或更新数据,实现动态功能。本篇文章将详细探讨Flex与后台交互的三种主要方法:HTTPService、WebService和URLLoader。 1. HTTPService: HTTPService是...
本篇文章将深入探讨如何利用Flex 4.0中的HttpService和WebService组件与Java Struts2框架构建的服务器进行通信。 首先,我们来看HttpService。HttpService是ActionScript 3.0中的一个类,用于发起HTTP请求,通常...
2. Flex与服务器交互:HTTPService HTTPService组件允许Flex通过HTTP协议与服务器进行数据交换。这对于与不支持AMF的服务器进行通信或执行RESTful API调用非常有用。在Java端,我们需要创建一个Servlet,如`...
在本文中,我们将深入探讨Flex 4与Java交互的三种主要方式:通过RemoteObject与普通Java类通信、使用HTTPService与服务器交互以及通过WebService与Web服务通信。这些技术在开发富互联网应用程序(RIA)时,允许前端...
在Java开发中,Flex HttpService是一个强大的工具,用于在Adobe Flex客户端与服务器之间进行数据通信。这个服务允许Flex应用程序通过HTTP协议发送请求到后端服务器,并接收响应数据。本篇文章将深入探讨如何在Java...
2. Flex与服务器交互 - HTTPService HTTPService允许Flex应用通过HTTP协议与服务器进行通信。在这个例子中,定义了一个名为`SimpleServiceServlet`的Servlet,它处理来自Flex的请求并返回响应。在Flex客户端,我们...
在这个“Flex+HTTPService 例子”中,我们将探讨如何使用Flex与Java后台通过HTTPService进行数据交互。 首先,我们需要了解Flex中的HTTPService组件。HTTPService允许开发者发送HTTP请求到服务器,并接收响应数据。...
Flex与Servlet之间的数据交互是JavaWeb开发中的一个重要环节,它涉及到客户端富互联网应用程序(RIA)与服务器端数据处理的协同工作。Flex作为一个基于Adobe Flash Player的前端开发框架,主要用于创建具有丰富用户...
Flex4是一种基于ActionScript 3.0的开源框架...通过查看和运行这个示例,你将更深入地理解如何在Flex4中使用`HTTPService`与服务器交换数据。记住,理解XML数据的结构和如何适当地解析它,是使用`HTTPService`的关键。
- **服务端接口设计**:为了与Flex的RemoteObject通信,C#服务器需要提供对应的方法接口,这些接口会被Flex客户端调用,实现业务逻辑的交互。 4. **Flex源码解析** - **ActionScript代码**:在Flex源码中,通常会...
Flex与Java之间的通信是开发跨平台应用程序时的关键技术,它允许客户端(通常为Flex应用程序)与服务器端(通常是Java应用程序)进行数据交换。本篇将深入探讨几种主要的通信方式:URLLoader,HTTPService和Socket。...
【知识点详解】 本文档主要介绍了如何在Java JSP环境中集成Adobe ...这个过程涉及到Web项目配置、Struts框架集成、Flex JSP标签库的使用以及Flex Data Services的配置,最终实现了富客户端和服务器之间的数据交互。
本文将详细介绍如何使用Flex的HttpService组件向SpringMVC应用发送XML数据,并进行交互。 一、Flex中的HttpService组件 1. 创建HttpService:在Flex项目中,通过MXML或ActionScript可以创建HttpService实例。设置...
在开发分布式应用时,Flex和Java的交互是一个常见的需求。Flex作为前端的富互联网应用程序(RIA)框架,可以通过HTTP协议与后端服务器进行通信。在这个场景中,Flex使用`HttpService`组件向Java的Servlet发送键值对...
Flex与后台交互的方法是其核心功能之一,确保前端用户界面与后端数据服务之间的无缝通信。以下将详细介绍Flex与后台交互的常见方法和相关知识点。 1. **AMF (Action Message Format)** AMF是Flex与服务器之间进行...
而AMF(Action Message Format)通道则提供更高效的数据交换方式,适合于Flex与基于Adobe BlazeDS或LCDS的服务器之间进行数据交互。 本Flex工程"flexDemo"包含了一个完整的交互实例,可能包括以下几个关键部分: 1...
Flex是Adobe公司开发的一种富互联网应用程序(RIA)框架,它主要使用ActionScript编程语言和MXML标记语言,用于创建交互式、动态的用户界面。PHP则是一种广泛使用的开源服务器端脚本语言,尤其适合Web开发,可以嵌入...
根据提供的标题、描述、标签及部分内容,本文将详细介绍Flex与后台进行交互的三种主要方法:通过FlashVars传递参数、利用HttpService服务以及采用URLLoader组件。这些方法在Flex开发中非常常见,对于实现数据的前后...