FLEX中简单的 service 层与VIEW层分离的方法
一、service层
service类 继承 mx.rpc.http.mxml.HTTPService
在这个service类中实现数据请求,以及简单的逻辑处理
代码:
package services {
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.mxml.HTTPService;
import valueObjects.Product;
public class ProductService extends HTTPService {
[Bindable]
public var products:ArrayCollection;
public function ProductService(rootURL:String=null, destination:String=null) {
super(rootURL, destination);
this.resultFormat="e4x";
this.url="http://www.flexgrocer.com/categorizedProducts.xml";
addEventListener(ResultEvent.RESULT, handleProductResult);
}
private function handleProductResult( event:ResultEvent ):void {
var productsArray:Array = new Array();
var resultData:XMLList = event.result..product;
for each (var p:XML in resultData) {
var product:Product = Product.buildProductFromAttributes( p );
productsArray.push( product );
}
products = new ArrayCollection( productsArray );
}
}
}
二、View层代码:
在View层直接用service层的标签
代码:
<?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"
xmlns:views="views.*" xmlns:services="services.*"
creationComplete="handleCreationComplete(event)">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
<services:CategoryService id="categoryService"/>
<services:ProductService id="productService"/>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
private function handleViewCartClick( event:MouseEvent ):void {
bodyGroup.currentState="cartView";
}
private function handleCreationComplete(event:FlexEvent):void {
categoryService.send();
productService.send();
}
]]>
</fx:Script>
<s:controlBarLayout>
<s:BasicLayout/>
</s:controlBarLayout>
<s:controlBarContent>
<s:Button y="10" label="Checkout" id="btnCheckout" right="10"/>
<s:Button y="10" label="View Cart" id="btnCartView" right="90" click="handleViewCartClick( event )"/>
<s:Button label="Flex Grocer" x="5" y="5"/>
<s:List left="200" height="40" dataProvider="{categoryService.categories}" labelField="name">
<s:layout>
<s:HorizontalLayout/>
</s:layout>
</s:List>
</s:controlBarContent>
<s:Label text="(c) 2009, FlexGrocer" right="10" bottom="10"/>
<views:ShoppingView id="bodyGroup"
width="100%" height="100%"
groceryInventory="{productService.products}"/>
</s:Application>
分享到:
相关推荐
Spring还支持各种Web应用的开发,包括Model-View-Controller(MVC)架构,使得后端业务逻辑与视图分离,便于维护。 3. **Ibatis** Ibatis是一个简单易用的SQL映射框架,它将Java代码中的数据库操作与SQL语句解耦,...
在Flex中,Model-View-Controller(MVC)设计模式是广泛应用的架构,用于组织和分离应用程序的不同部分,提高代码的可维护性和可扩展性。标题提到的“flexMVC”就是关于Flex平台下实现MVC架构的两个著名框架——...
在 Flex 应用中,通常会通过 Spring 配置 iBATIS,创建 DAO(Data Access Object)层,实现与数据库的交互。 Cairngorm 和 pureMVC 是两种常用的 Flex 应用架构模式。Cairngorm 是一种轻量级的 MVC(Model-View-...
Flex中的MVC模式是一种软件设计模式,用于组织和分离应用程序中的业务逻辑、用户界面和数据模型。MVC代表Model(模型)、View(视图)和Controller(控制器)。这种模式在Flex开发中尤其重要,因为它有助于创建可...
Flex是一种开源的、基于ActionScript的开发工具,用于创建交互式、富媒体的用户界面,而Cairngorm则是一个轻量级的MVC(Model-View-Controller)设计模式框架,适用于Flex应用,它提高了代码的可维护性和可测试性。...
Flex Cairngorm和Parsley是两种在Adobe Flex框架中广泛使用的MVC(Model-View-Controller)设计模式实现库,它们主要用于构建大型、复杂的富互联网应用程序(RIA)。本源码Demo提供了这两种技术的集成应用实例,帮助...
在Flex中,我们可以创建一个RemoteObject实例,配置其URL和方法名,然后调用这些方法以与服务器通信。 4. **配置和调用远程服务**: 在Flex中,我们需在services-config.xml文件中配置ColdFusion服务,指定服务端...
这个框架的设计目的是为了提高Flex项目的可维护性和可扩展性,通过分离业务逻辑、视图和控制层,使得代码更加模块化。在Cairngorm中,模型(Model)、视图(View)和控制器(Controller)之间的通信是通过事件驱动...
在Flex CairngormStoreWeb项目中,模型层负责处理业务逻辑和数据存储,视图层显示UI组件,控制器层协调模型和视图的交互。 4. **WEB-INF**:在Java Web应用中,WEB-INF是一个特殊目录,包含了应用的配置文件、库...
Cairngorm框架是Adobe Flex开发中的一种著名轻量级MVC(Model-View-Controller)框架,由Adobe公司的专业团队设计,旨在提高Flex应用程序的可维护性和可扩展性。这个框架的核心理念是通过分离业务逻辑、用户界面和...
在Flex开发中,MVC(Model-View-Controller)设计模式被广泛采用,因为它能有效地分离业务逻辑、数据处理和用户界面,从而提高代码的组织性和复用性。 标题提到的"Flex MVC框架下载",指的是提供了两种主流的Flex ...
Flex Cairngorm之旅,这是一次深入探讨Adobe Flex框架Cairngorm的实践教程,旨在通过一个小项目的实例来展示Cairngorm如何在实际开发中发挥作用。Cairngorm是面向服务架构(SOA)的轻量级MVC(Model-View-Controller...
Cairngorm提供了一个Responder接口,用于处理服务调用的结果,以及ServiceLocator单例类,用于获取定义在XML文件中的服务实例。 2. **Command(命令部分)**:命令模式是Cairngorm的核心组件,负责处理用户交互和...
在Flex与PHP的整合中,有两种主要的通信方式:AMF(Action Message Format)和HTTP Service。实验结果显示,在大通信量或网络条件不佳的情况下,AMF的性能优于HTTP Service。AMF是一种二进制格式,用于在Flex和PHP...
Flex的Cairngorm框架是Adobe Flex开发中的一个轻量级MVC(Model-View-Controller)框架,它为创建可扩展、可维护的富互联网应用程序(RIA)提供了结构和指导。Cairngorm框架主要由Martin Fowler在2005年提出,灵感...
在Cairngorm中,通常使用Flex的`RemoteObject`或`HTTPService`组件与服务器进行通信,获取或更新数据。模型组件通过事件发布数据变化,供其他层监听并作出响应。 2. **视图(View)**:视图是用户界面,负责展示...
- **Service/ServiceLocator/Delegate**:服务层是处理与外部系统交互的部分,包括数据库查询、远程调用等。ServiceLocator则负责集中管理这些服务实例,而BusinessDelegate则封装了具体的业务逻辑,使得控制器层...
Flex Cairngorm框架是Adobe Flex应用程序开发中的一个流行MVC(Model-View-Controller)框架,它提供了一种结构化的方式来组织复杂的Flex项目,以实现可维护性和可扩展性。本实例将深入探讨Cairngorm的各个组件以及...
2. **视图(View)**:视图通常是Flex中的UI组件,如Flex布局、按钮、文本框等,它们通过数据绑定直接与`ModelLocator`交互,显示和处理用户输入。视图的变化不会直接操作模型,而是通过事件触发控制器。 3. **控制...