Flex提供RPC服务以向客户端提供服务器端数据. Flex对服务器端数据提供了相当大的控制.
使用Flex RPC服务,我们可以定义用户操作可以在服务器端执行.
Flex RPC Sservices可以与任何服务器端技术集成.
Flex RPC Service之一提供内置支持,可以通过网络传输压缩二进制数据并且非常快.
Flex提供以下三种类型的RPC服务
Sr.No | RPC Service&说明 |
---|---|
1 | HttpService < mx:HTTPService> tag用于表示MXML文件中的HTTPService对象.当您调用HTTPService对象的send()方法时,它会向指定的URL发出HTTP请求,并返回HTTP响应.您还可以使用HTTP HEAD,OPTIONS,TRACE和DELETE方法. |
2 | WebService < mx:WebService>用于访问符合SOAP的Web服务的操作. |
3 | RemoteObject < mx:RemoteObject> tag用于表示MXML文件中的HTTPService对象.此标记使您可以使用Action Message Format(AMF)编码访问Java对象的方法. |
我们将详细讨论HTTP服务.我们将使用放置在服务器上的XML源文件,并通过HTTP服务在客户端访问它.
<items> <item name = "Book" description = "History of France"></item> <item name = "Pen" description = "Parker Pen"></item> <item name = "Pencil" description = "Stationary"></item> <items>
现在声明一个HTTPService并传递上述文件的URL
<fx:Declarations> <mx:HTTPService id = "itemRequest" url = "http://www.it1352.com/flex/Items.xml" /> </fx:Declarations>
调用itemRequest.send()方法并绑定itemRequest webservice的lastResult对象的值到Flex UI组件.
... itemRequest.send(); ... <mx:DataGrid id = "dgItems" height = "80%" width = "75%" dataProvider = "{itemRequest.lastResult.items.item}"> <mx:columns> <mx:DataGridColumn headerText = "Name" dataField = "name" /> <mx:DataGridColumn headerText = "Description" dataField = "description" /> </mx:columns> </mx:DataGrid>
现在,让我们按照步骤在Flex应用程序中测试RPC服务 :
Step | 描述 |
---|---|
1 | 在包 com.it1352.client 下创建一个名为 HelloWorld 的项目如 Flex - 创建应用程序章节中所述. |
2 | 修改 HelloWorld.mxml ,如下所述.保持其余文件不变. |
3 | 编译并运行应用程序以确保业务逻辑按照要求运行. |
以下是修改后的mxml文件的内容 src/com.it1352/HelloWorld.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 = "500" minHeight = "500" creationComplete = "init(event)"> <fx:Style source = "/com/IT屋/client/Style.css" /> <fx:Script> <![CDATA[ import mx.events.FlexEvent; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; protected function init(event:FlexEvent):void { itemRequest.send(); } ]]> </fx:Script> <fx:Declarations> <mx:HTTPService id = "itemRequest" url = "http://www.IT屋.com/flex/Items.xml" /> </fx:Declarations> <s:BorderContainer width = "630" height = "480" id = "mainContainer" styleName = "container"> <s:VGroup width = "100%" height = "100%" gap = "10" horizontalAlign = "center" verticalAlign = "middle"> <s:Label id = "lblHeader" text = "RPC Service Demonstration" fontSize = "40" color = "0x777777" styleName = "heading" /> <s:Panel id = "parentPanel" title = "Using RPC Services" width = "500" height = "200" > <s:layout> <s:VerticalLayout gap = "10" verticalAlign = "middle" horizontalAlign = "center" /> </s:layout> <mx:DataGrid id = "dgItems" height = "80%" width = "75%" dataProvider = "{itemRequest.lastResult.items.item}"> <mx:columns> <mx:DataGridColumn headerText = "Name" dataField = "name" /> <mx:DataGridColumn headerText = "Description" dataField = "description" /> </mx:columns> </mx:DataGrid> </s:Panel> </s:VGroup> </s:BorderContainer> </s:Application>
完成所有更改后,让我们按照正常模式编译并运行应用程序,就像我们在Flex - 创建应用程序章节.如果您的应用程序一切正常,它将产生以下结果: