【IT168 实用技巧】上一篇文章介绍了Flex提供的多个基本控件,这些控件虽然为数众多,能够帮助开发人员创建优秀的用户界面,但是可与外部数据产生交互的却很少。众所周知,在多数情况下,Flex应用程序只有与外部数据源发生交互,才具有更大的实用意义。本文首先简单介绍使用Flex技术实现数据访问的机制,然后说明Flex提供的数据控件,最后通过一个典型示例讲解数据控件的使用方法。
1. 简介数据访问机制
在通常情况下,应用程序主要处理两种数据:一种是来自应用程序内部的数据,例如在业务处理过程中产生的数据,同时,该类数据还包括了从用户界面获取的,用户输入的数据,例如,用户输入给文本框的文本等等。还有一种是来自外部数据源中的数据,外部数据源包括关系型数据库、XML文件、文本文件、Web服务等,这类数据是Flex应用程序处理的重点。
在使用Flex技术处理数据的时候,最重要的是记住:Flex应用程序并不直接与外部数据源进行连接,尤其是不会与数据库直接连接,而是通过Flex数据服务(Flex Data Service)来实现数据访问。
Flex数据服务与数据控件之间关系紧密。简单而言,只有使用Flex数据服务与数据源交互,数据控件才能够显示和编辑相关数据。因此,了解Flex数据服务是学习和使用数据控件的必备知识,这就是撰写本小节的主要原因。(限于篇幅,本文只是简单讲解Flex数据服务,在以后的文章中还将详细讲解Flex数据服务的应用方法。)
Flex数据服务是Flex 2技术提供的一种新的消息架构,其主要用于支持创建数据应用程序。Flex数据服务在Java应用服务器上或Java容器中执行,其提供了多种强大功能,例如增强的数据服务、与多个客户端进行数据共享、支持客户端到客户端的通信、自动服务器数据推送、客户端对服务器端资源的可靠访问、增强的远程过程调用(RPC)功能等。
Flex数据服务由四个部分组成:消息架构(Messaging infrastructure)、RPC(Remote Procedure Call)服务、消息服务(Message Service)和数据管理服务(Data Management Service)。如图1所示:
| 图1 |
消息架构(Messaging infrastructure)可以使Flex应用程序连接消息目的地,发送消息,以及接收从其它客户端发来的消息。消息客户端可以是Flex应用程序或者其它类型的客户端,如Java Message Service(JMS)客户端。消息构造由服务器端的消息服务和在Flex客户端程序相应的消息API所组成。
RPC服务是一种适合于连接外部数据的服务。该服务包括以下组件:(1)WebService——WebService组件可用于访问任何使用WSDL 1.1标准的Web服务,同时以简单对象访问协议(Simple Object Access Protocol,缩写为SOAP)消息格式返回数据。(2)HTTPService——HTTPService组件能够发送HTTP GET、POST、HEAD、OPTIONS、PUT、TRACE或者DELETE请求。(3)RemoteObjects——RemoteObject组件使用动作消息格式Action Message Format,缩写为AMF)来传递数据,这是一种二进制格式,要比RPC服务快捷。它还是一种与服务器端位于FDS server的源路径中的Java对象交互的理想方法。甚至还可以使用RemoteObject组件连接本地或者远程ColdFustion服务器。Java对象和ColdFusion组件都可映射到ActionScript对象,这样可将服务器端和客户端对象无缝集成。
WebService和HTTPService组件都包括在免费的Flex SDK中,而RemoteObject组件仅可应用在FDS Server或者ColdFusion 7.02中。
消息服务允许创建支持实时消息传递和协作的应用程序。消息服务用于支持Java消息服务(Java Message Service,缩写为JMS)和其他现有的消息服务,其允许创建跨平台的聊天应用程序。
数据管理服务提供了应用程序层之间的数据同步、实时数据更新、数据复制、连接应用程序服务和与数据源集成的功能。开发人员使用该服务能够创建使用分布式数据的应用程序,同时管理大型数据集合和具有嵌套关系的数据。
| 第1页:简介数据访问机制 | 第2页:数据控件概述 |
| 第3页:List控件 | 第4页:HorizontalList/TileList控件 |
| 第5页:Tree/DataGrid控件 | 第6页:ComboBox控件 |
| 第7页:数据控件应用示例 |