数据处理和数据服务.ppt

上传人:za****8 文档编号:16590694 上传时间:2020-10-16 格式:PPT 页数:26 大小:269.50KB
返回 下载 相关 举报
数据处理和数据服务.ppt_第1页
第1页 / 共26页
数据处理和数据服务.ppt_第2页
第2页 / 共26页
数据处理和数据服务.ppt_第3页
第3页 / 共26页
点击查看更多>>
资源描述
第 17章 数据处理和数据服务 从本章开始学习如何在 Flex应用中操纵数据。 Flex 2在先前的版本基础上加强了客户端的数据 功能,同时在 Flex的产品线中加入了 Flex Data Service 2,使 Flex应用更方便的与服务器端进行 数据交互。本章主要介绍 Flex中数据的相关特性, 简要的介绍 Flex数据服务。 17.1 Flex中的数据处理 在 Flex应用开发过程中,数据是不可缺少的一部分。获取服务器 端数据,并对数据进行操作,成为开发应用过程非常重要的部分。 本节主要介绍 Flex中数据处理的关键步骤,包含绑定数据 ( Binding Data)、存储数据( Storing Data)、验证数据 ( Validating Data)和格式化数据( Formatting Data)。 数据在用户与应用交互中是无处不在的。从用户在应用界面输入 数据,请求返回信息,到服务器端返回数据并在见面上显示数据, 经历了数个数据处理阶段,如图所示。 17.2 绑定数据 “ 绑定”是非常形象的概念。例如把网上银行帐户和你的 信用卡帐户绑定,网上购物消费后,信用卡帐号的余额也 会发生改变。而对于数据,绑定是在不同的对象之间进行 数据的捆绑过程,当其中一个对象改变了,另一个对象也 发生改变。绑定为应用的数据传递提供了一种便捷的方式。 这里的对象通常指 Flex组件的属性,例如文本控件的 text 属性,数据类组件的 dataProvider属性等。 通常,一个数据绑定由三部分构成,包括绑定源、绑定目 标和触发事件。当事件被触发后,绑定发生,完成从绑定 源到绑定目标的数据拷贝。 Flex 2中提供了三种数据绑定的方法:“ ” 语法、 MXML 的 标签和 ActionScript中的 BindingUtils方 法。下面分别介绍这 3种方法。 17.2.1 使用“ ” 进行数据绑定 在使用“ ” 进行绑定时,绑定源可以是控件属 性、 ActionScript表达式、 ActionScript函数。 使用“ ” 语法进行数据绑定是最简单的数据绑 定方式。使用该方法时, 将绑定的源属性括起 来,作为目标属性的值,具体形式如下。 目标属性的值 =源属性 ; 17.2.2 使用 标签进行数据绑定 在 Flex应用中,还可以使用 标签取 代“ ” 进行数据绑定。当使用 标 签时,需要提供为标签提供源属性和目标属性, 这和使用“ ” 是一致的。 标签定义数据绑定的一般格式如下: 17.2.3 使用 ActionScript定义绑定 前面使用“ ” 或者 标签定义数据 绑定,都是在 MXML中进行。 Flex还支持在 ActionScript中使用 mx.binding.utils.BindingUtils类来定义数据绑 定。该类的 bindProperty()用来将属性绑定到变 量上。 bindSetter()方法可以定制的方式实现绑 定。 1使用 bindProperty()方法 2 bindSetter()方法 17.2.4 多个源属性到目标属性的绑定 标签可以实现多个不同的源属性到 相同的目标属性的绑定。这是通过多个具有相同 目的属性的绑定标签来完成的。但也可以与“ ” 组合定义使用。 下面的例子使用用多个源属性的绑定,一个采用 标签,一个采用“ ” ,如图所示。 17.2.5 源属性到多个目标属性的绑定 同样,同一个源属性可以绑定到多个不同的目标 属性上。在接下来的这个例子中,文本输入控件 的 text属性绑定到两个数据模型上,这两个数据 模型有分别对应两个标签控件的 text属性,如图 所示。 17.3 存储数据 Flex中存储数据主要依靠数据模型来实现。可以根据应用 的需要,在数据模型中定义相应的属性用来保存应用数据。 数据模型广泛的用于 Flex前台界面和后台服务器之间交互。 用户界面的数据在发送到服务器端处理之前,被保存在数 据模型中。同样,数据模型也可以保存来自服务器处理完 成的数据。从 MVC设计模式的角度来看,数据模型位于模型 层面,起到承上启下的作用。 数据模型模型的引入,使得数据的验证和格式化都变得容 易。同时数据模型的定义可以包含客户端的业务逻辑,通 过不同数据的组合,大大增强了数据的内聚性。 本节主要介绍数据模型的定义、验证和使用。 17.3.1 数据模型定义 数据模型是 ActionScript对象。数据模型的定义 有两种方法: MXML标签、 ActionScript函数或者 ActionScript类。通常是根据实际情况,决定使 用哪种方法。对于简单的数据结构使用 MXML来定 义,而 ActionScript函数或者 ActionScript类方 法一般用来定义复杂的数据结构和客户端业务逻 辑。 1.使用 MXML标签 2.使用 ActionScript函数和 ActionScript类 17.3.2 数据模型的验证 数据模型的验证是对数据模型中保存的数据的正 确性进行检验。在 Flex中,数据模型的验证使用 数据验证器( Data Validator)。 在下面的例子中,对 student数据模型中不同的数 据定义了不同的验证器, 17.3.3 数据模型作为值对象 数据模型作为值对象,是指将数据模型中保存的 数据值,以对象的方式,在控件之间传递。通常 用在远程服务调用返回时,将结果中一系列数据 或者多个对象数据保存在某个数据模型中。该模 型作为值对象在远程服务和数据控件之间传递数 据。这样会使得在 Flex应用中管理和处理数据变 得简单。 在下面的例子中, bookDM存储了远程服务操作的 结果。 bookInfo组件是一个自定义组件,从 bookDM模型获取数据并显示当前选择图书的详细 信息。 17.3.4 XML数据模型 XML数据模型是指数据模型中保存的是 XML数据,对其处理 遵循 XML标准。在使用数据模型时,有时会涉及 XML数据。 为此 Flex专门提供了了 标签,用于定义 XML数据模 型。 该数据模型在与 不同之处,主要在于编译时 会被编译为 ActionScript的 xml.XMLNode的数据或 者是 XML对象。在 中可以使用“ ” 进行数据绑定。 使用 时,可以把该标签下的内容看作一个 XML文档。 如果将 的 source属性设为 E4X,就可以使用强大的 E4X处理 XML。这里需要注意的是,在当前 Flex版本不能 内的节点值作为绑定源。 17.4 验证数据 数据验证是 Flex中的数据进行正确性验证。数据 的正确性涉及数据的格式、类型、数值等。本节 主要介绍 Flex数据验证机制,主要包括:数据验 证器的创建、数据验证的触发、错误提示和预定 义标准验证器。 17.4.1 使用标准数据验证器 在 Flex中,为了更加方便的进行数据验证。对于 常用数据,提供了的预定义数据验证器,主要包 括以下几类。 CurrencyValidator:货币数据验证。 CreditCardValidator:信用卡数据验证。 DateValidator:日期数据验证。 NumberValidator :数字验证。 PhoneNumberValidator:电话号码验证。 EmailValidator:邮箱地址验证。 ZipCodeValidator :邮政区号验证。 17.4.2 创建数据验证器 Flex中数据验证是由验证器( Validator)来执行 的。验证器的创建使用 标签或者 指定验证器的标签,还可以使用验证器对应的类 在 ActionScript中创建。下面以 为介绍创建过程。 1使用 MXML标签 2在 ActionScript中创建 17.4.3 触发验证器 在 Flex应用中,数据验证是可以被在事件发生时触发。这样,用 户可以在需要验证时,随时触发验证。最常用的触发方式是使用 按钮。当单击某个按钮后,对数据进行验证。 在验证器定义过程中,可以通过以下两个属性定义验证的触发: trigger:表示触发验证的对象(通常是按钮)。例如: trigger=button;。 triggerEvent:表示对象触发验证事件类型 (如鼠标单击,鼠标滑 入滑出等 )。例如: triggerEvent=click。 17.4.4 验证错误提示 验证错误提示是当数据验证发生错误时,用户界面上显示的与错 误有关的信息。如前面示例中,日期格式不正确的显示的错误提 示。验证控件在默认情况下已经显示默认的提示错误,但提示的 语言使用的都是英文。为了从更加贴合应用的实际,可以使用不 同的属性定义提示信息。 在下面的例子中,对电话号码的验证器,定义了不同的提示信息。 用户单击验证按钮,触发对输入电话号码的验证。在不同错误下, 验证提示信息如图所示。 17.5 格式化数据 格式化数据是对数据进行的处理,按照某种约定 的格式以统一的形式输出。在 Flex中数据的格式 化是由格式器( formatter)完成的。格式器是一 个可配置的对象,用来将原始数据格式化为定制 数据。通常数据的格式是从显示的角度对绑定到 组件上的数据进行的,主要是减少人工处理的工 作量,提高数据操作的效率。本节主要讲述如何 使用数据格式器,包括格式器的创建、触发、错 误的处理和常用的格式器。 17.5.1 使用标准的格式器 在 Flex中,为了更加方便的进行数据格式化。对于常用数 据,提供了的标准的数据格式器,主要包括以下几类。 CurrencyFormatter:货币数据格式化。 DateFormatter:日期数据格式化。 NumberFormatter :数字格式化。 PhoneFormatter:电话号码格式化。 ZipCodeFormatter :邮政区号格式化。 在 Flex应用中如果需要对上述数据进行格式化,只需使用 相应的 MXML标签或者 ActionScript类即可。每类格式器的 使用方法类似,这里只介绍通用格式化器的使用方法。 17.5.2 创建数据格式器 数据格式器将数据格式为字符串,实现原始数据到字符串的单向 转换。最典型的情况是在文本域中显示数据之前触发数据的格式 化。 创建格式器,使用的 MXML标签是 或者指定格式化 器的标签。主要涉及如下的属性和方法: formatString:定义数据的格式属性。它是格式化的基础。例如: formatString=YYYY-MM-DD,是将输入的日期格式为年 -月 -日这 样的格式。 format():格式化方法。该方法输入是需要格式化的数据,输出 是格式字符串。当格式化发生错误时,返回空值,同时错误信息 会写入格式器的 error属性中。 创建格式器的一般过程如下: ( 1)在 MXML代码中声明一个格式器,给定合适的格式属性。 ( 2)使用 对绑定数据调用格式器的 format()方法,将要格式化 的数据作为 format()方法的参数。 17.5.3 触发格式器 格式器的触发需要调用格式器的 format()方法。在 Flex应 用中可以在任何地方调用 format()方法。通常格式器的触 发是作为事件的响应,如按钮的单击事件。 下面是一个通过按钮事件触发格式器的例子。创建了一个 日期格式器。当用户单击格式化按钮时,作为鼠标单击事 件的响应,格式器触发,对输入的日期格式化并将格式数 据显示到 TextInput控件,如图所示。 17.5.4 错误处理 在格式化数据的过程可能会发生错误,错误处理是用来将错误信 息返回给调用者。错误处理涉及到格式器的 error属性。当发生格 式错误时,错误描述信息写入格式器的 error属性当中。 通常,当发生格式错误时 format()方法会返回空字符串,同时错 误信息也会被记录。所以当检测到返回字符串为空时,可以访问 error属性获得错误原因。 另外,用户也可以使用 ActionScript,编写自定义的错误处理函 数来处理格式化错误。下面的例子中定义了一个简单的错误处理 函数。 17.6 Flex数据服务 Flex 2系列产品对开发者创建和管理面向服务的 丰富因特网应用程序( RIAs)的方式做了几个重 要改进。其中数据服务从原有的功能中划分出来, 可以作为独立的服务安装。特别是数据服务中的 新的性能,使得与服务器端的交互比以前任何版 本都显得方便。本节将简要介绍 Flex数据服务, 详细的内容在后面的章节重点介绍。 17.6.1 数据服务概述 在 Flex 2中数据服务指的是 Flex Data Services 2。它与早期的 Flex数据管理相比,向前跨了重大的一步,它提供一组基于信息 的服务,具有支持同步数据的能力。这显著的提升了开发者的生 产率,不用花时间去编写、调试和维护,往往容易出错,并要求 在客户端、程序和数据库不同层间移动数据的代码上。 Flex数据服务具有以下特点。 Flex数据服务提供一系列强大的服务器端数据管理功能,使开发 人员能够快速数据密集型 Flex应用程序。 Flex数据服务部署为标准 Web J2EE 应用程序,通过为现有的服务 器端数据和业务逻辑提供高性能数据连接,增强了客户端 Flex框 架。 Flex数据服务基于强大的消息体系结构,它与现有的基于标准的 中间设备相集成,提供客户和服务器之间的数据自动同步服务, 增加对实时数据推送和发布 /订阅消息的支持,并实现应用程序的 协作和偶尔连接。 17.6.2 数据服务的组成与部署 数据服务主要由三部分组成:数据管理服务,消 息服务以及 RPC服务,如图所示。 1.数据管理服务 2.Flex消息服务 3.RPC服务 4.开发部署
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!