`

FLEX中简单的 service 层与VIEW层分离的方法

    博客分类:
  • FLEX
 
阅读更多

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>
 

分享到:
评论

相关推荐

    flex spring

    Spring还支持各种Web应用的开发,包括Model-View-Controller(MVC)架构,使得后端业务逻辑与视图分离,便于维护。 3. **Ibatis** Ibatis是一个简单易用的SQL映射框架,它将Java代码中的数据库操作与SQL语句解耦,...

    flexMVC

    在Flex中,Model-View-Controller(MVC)设计模式是广泛应用的架构,用于组织和分离应用程序的不同部分,提高代码的可维护性和可扩展性。标题提到的“flexMVC”就是关于Flex平台下实现MVC架构的两个著名框架——...

    Flex4+Spring+ibatis实战系列教程

    在 Flex 应用中,通常会通过 Spring 配置 iBATIS,创建 DAO(Data Access Object)层,实现与数据库的交互。 Cairngorm 和 pureMVC 是两种常用的 Flex 应用架构模式。Cairngorm 是一种轻量级的 MVC(Model-View-...

    flex的mvc模式

    Flex中的MVC模式是一种软件设计模式,用于组织和分离应用程序中的业务逻辑、用户界面和数据模型。MVC代表Model(模型)、View(视图)和Controller(控制器)。这种模式在Flex开发中尤其重要,因为它有助于创建可...

    flex+cairngorm+java 实例

    Flex是一种开源的、基于ActionScript的开发工具,用于创建交互式、富媒体的用户界面,而Cairngorm则是一个轻量级的MVC(Model-View-Controller)设计模式框架,适用于Flex应用,它提高了代码的可维护性和可测试性。...

    Flex Cairngorm Parsley Demo 源码

    Flex Cairngorm和Parsley是两种在Adobe Flex框架中广泛使用的MVC(Model-View-Controller)设计模式实现库,它们主要用于构建大型、复杂的富互联网应用程序(RIA)。本源码Demo提供了这两种技术的集成应用实例,帮助...

    FLEX 下的MVP应用 以及 ColdFusion 的远程服务调用

    在Flex中,我们可以创建一个RemoteObject实例,配置其URL和方法名,然后调用这些方法以与服务器通信。 4. **配置和调用远程服务**: 在Flex中,我们需在services-config.xml文件中配置ColdFusion服务,指定服务端...

    Flex开发框架cairngorm入门实例教程

    这个框架的设计目的是为了提高Flex项目的可维护性和可扩展性,通过分离业务逻辑、视图和控制层,使得代码更加模块化。在Cairngorm中,模型(Model)、视图(View)和控制器(Controller)之间的通信是通过事件驱动...

    flex的CairngormStoreWeb项目

    在Flex CairngormStoreWeb项目中,模型层负责处理业务逻辑和数据存储,视图层显示UI组件,控制器层协调模型和视图的交互。 4. **WEB-INF**:在Java Web应用中,WEB-INF是一个特殊目录,包含了应用的配置文件、库...

    Cairngorm-Flex.zip_Cairngorm_flex

    Cairngorm框架是Adobe Flex开发中的一种著名轻量级MVC(Model-View-Controller)框架,由Adobe公司的专业团队设计,旨在提高Flex应用程序的可维护性和可扩展性。这个框架的核心理念是通过分离业务逻辑、用户界面和...

    Flex MVC框架下载

    在Flex开发中,MVC(Model-View-Controller)设计模式被广泛采用,因为它能有效地分离业务逻辑、数据处理和用户界面,从而提高代码的组织性和复用性。 标题提到的"Flex MVC框架下载",指的是提供了两种主流的Flex ...

    Flex Cairngorm之旅(小项目实例)

    Flex Cairngorm之旅,这是一次深入探讨Adobe Flex框架Cairngorm的实践教程,旨在通过一个小项目的实例来展示Cairngorm如何在实际开发中发挥作用。Cairngorm是面向服务架构(SOA)的轻量级MVC(Model-View-Controller...

    Flex Cairngorm内部培训教程

    Cairngorm提供了一个Responder接口,用于处理服务调用的结果,以及ServiceLocator单例类,用于获取定义在XML文件中的服务实例。 2. **Command(命令部分)**:命令模式是Cairngorm的核心组件,负责处理用户交互和...

    基于Flex 与PHP 的MVC 框架整合应用研究

    在Flex与PHP的整合中,有两种主要的通信方式:AMF(Action Message Format)和HTTP Service。实验结果显示,在大通信量或网络条件不佳的情况下,AMF的性能优于HTTP Service。AMF是一种二进制格式,用于在Flex和PHP...

    Flex的Cairngorm框架工程 Java后台

    Flex的Cairngorm框架是Adobe Flex开发中的一个轻量级MVC(Model-View-Controller)框架,它为创建可扩展、可维护的富互联网应用程序(RIA)提供了结构和指导。Cairngorm框架主要由Martin Fowler在2005年提出,灵感...

    flex Cairngorm框架实例

    在Cairngorm中,通常使用Flex的`RemoteObject`或`HTTPService`组件与服务器进行通信,获取或更新数据。模型组件通过事件发布数据变化,供其他层监听并作出响应。 2. **视图(View)**:视图是用户界面,负责展示...

    flex Cairngorm 实例

    Flex Cairngorm框架是Adobe Flex应用程序开发中的一个流行MVC(Model-View-Controller)框架,它提供了一种结构化的方式来组织复杂的Flex项目,以实现可维护性和可扩展性。本实例将深入探讨Cairngorm的各个组件以及...

    Flex 框架搭建步骤Cairngorm

    2. **视图(View)**:视图通常是Flex中的UI组件,如Flex布局、按钮、文本框等,它们通过数据绑定直接与`ModelLocator`交互,显示和处理用户输入。视图的变化不会直接操作模型,而是通过事件触发控制器。 3. **控制...

Global site tag (gtag.js) - Google Analytics