`

基于Cairngorm框架调用Java的Flex登陆案例

    博客分类:
  • Flex
 
阅读更多
附件:TestLogin.rar (2.5 MB)为此案例的源代码



package com.demo.service;

public class UserService {

	public String login(String username, String password) {

		if (username.equals("admin") && password.equals("123456")) {

			return "success";
		} else {

			return "error";
		}
	}
}

package com.user.service
{
	import com.adobe.cairngorm.business.ServiceLocator;
	import mx.rpc.IResponder;
	public class UserProxy
	{
		private var responder:IResponder;
		private var service:Object;
		public function UserProxy(responder:IResponder)
		{
			//获取远程对象
			this.service=ServiceLocator.getInstance().getRemoteObject("UserService");
			this.responder=responder;
		}
		public function login(username:String,password:String):void
		{
			//调用方法
			var call:Object=this.service.login(username,password);
			call.addResponder(responder);
		}
	}
}

package com.user.command
{
	import com.adobe.cairngorm.commands.ICommand;
	import com.adobe.cairngorm.control.CairngormEvent;
	import com.user.event.UserEvent;
	import com.user.service.UserProxy;
	
	import mx.collections.ArrayCollection;
	import mx.controls.Alert;
	import mx.core.Application;
	import mx.core.FlexGlobals;
	import mx.rpc.IResponder;  
	
	public class UserCommand implements ICommand, IResponder
	{
		public function UserCommand()
		{
			
		}
		
		//执行调用
		public function execute(event:CairngormEvent):void
		{
			var userEvent:UserEvent=UserEvent(event);
			var userService:UserProxy=new UserProxy(this);
			userService.login(userEvent.username,userEvent.password);
		}
		
		//更新模型
		public function result(data:Object):void
		{
			var message:String=data.result as String;
			
//			Application.application.mainContainer.removeElement(Application.application.loginPanel);
//			
//			Application.application.main_.message_label.text=message;
			
			FlexGlobals.topLevelApplication.mainContainer.removeElement(Application.application.loginPanel);
			
			FlexGlobals.topLevelApplication.main_.message_label.text=message;

			
		}
		
		public function fault(info:Object):void
		{
			Alert.show("Fail Error ");
		}
	}
}

<?xml version="1.0" encoding="utf-8"?>
<s:Panel 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:service="com.user.service.*"
		 xmlns:controller="com.user.controller.*"
		 width="294" height="220" focusColor="#70B2EE">
	
	<fx:Script>
		<![CDATA[
			import com.user.event.UserEvent;
			
			import com.adobe.cairngorm.control.CairngormEventDispatcher;

			protected function loginButton_clickHandler(event:MouseEvent):void
			{
				// TODO Auto-generated method stub
				var userEvent:UserEvent=new UserEvent();
				userEvent.username=username_text.text;
				userEvent.password=password_text.text;
				CairngormEventDispatcher.getInstance().dispatchEvent(userEvent);
			}
		]]>
	</fx:Script>
	
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	<s:TextInput id="username_text" x="120" y="45" text="admin"/>
	<s:TextInput id="password_text" x="120" y="91" text="123456"/>
	<s:Button x="192" y="146" width="80" height="25" label="登陆" chromeColor="#3475B1"
			  click="loginButton_clickHandler(event)" color="#FFFFFF"/>
	<s:Label x="63" y="52" text="用户名"/>
	<s:Label x="63" y="97" text="密码"/>
</s:Panel>

<?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:ns1="*"
			   xmlns:service="com.user.service.*"
			   xmlns:controller="com.user.controller.*"
			   minWidth="955" minHeight="600">
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
		<service:UserServiceLocator/>
		<controller:UserController/>
	</fx:Declarations>
	<s:BorderContainer id="mainContainer" width="100%" height="100%">
	<ns1:main id="main_"/>
	<s:Panel id="loginPanel" x="0" y="0" width="100%" height="100%">
		<s:layout>
			<s:VerticalLayout horizontalAlign="center" paddingTop="150"/>
		</s:layout>
		<ns1:login_Com x="323" y="152">
		</ns1:login_Com>
	</s:Panel>
	</s:BorderContainer>
</s:Application>
分享到:
评论

相关推荐

    Cairngorm+java EE 例子源码

    在这个案例中,我们可能会看到如何在Flex中使用Cairngorm框架来组织和控制应用的逻辑。 3. **Java EE集成**:Cairngorm可以与Java EE后端无缝集成,实现数据和服务的交换。通过HTTP服务或者AMF(Action Message ...

    Cairngorm一些资料

    在提供的压缩包文件中,我们可以通过多个文档和案例深入理解Cairngorm框架的核心概念和实际应用。 《Cairngorm 开发文档中文版.pdf》应该是对Cairngorm框架的详细介绍,包括其设计原则、核心组件以及如何在项目中...

    Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring)part1.

    1. **Cairngorm框架**:此框架的核心在于简化Flex应用程序的设计和开发。它基于MVC设计模式,通过定义统一的数据访问方式和业务逻辑处理方式,使得开发人员可以更加专注于业务逻辑的实现,而不需要关心底层的细节。 ...

    Flex和java交互的示例代码

    - 在部署时,还需要配置Flex客户端与Java服务器的通信设置,例如使用Cairngorm框架或 BlazeDS等工具。 综上所述,通过合理的架构设计和编码实践,Flex与Java可以高效地进行数据交互,从而构建出功能强大的Web应用...

    Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part2.pdf

    本文档介绍了一个利用Flex前端技术与J2EE后端技术结合的具体实现案例,主要涉及到的技术栈包括:Cairngorm、BlazeDS、Hibernate 和 Spring。该实例分为多个部分,此文档为第二部分,旨在帮助初学者逐步理解和掌握...

    flex整合与spring整合 教程

    4. Cairngorm框架:Cairngorm是Flex中的一种MVC(Model-View-Controller)设计模式实现,它简化了大型Flex应用的结构和组织。在Flex与Spring整合中,Cairngorm可以帮助管理客户端的业务逻辑,与Spring的后端服务进行...

    flex4教程 详细介绍 案例讲解

    在后续的学习中,本教程将深入探讨Flex与Java的整合,包括数据通信、服务调用以及如何利用Flex的强大功能来创建交互式的、响应迅速的用户界面。通过学习Flex,开发者可以创建出具有高度动态性和用户体验的Web应用,...

    Cairngorm交互示例源文件(JSP后台)

    在本案例中,"Cairngorm交互示例源文件(JSP后台)"可能是一个包含使用Cairngorm框架构建的Flex应用,并与Java服务器端(JSP)进行交互的示例项目。 首先,让我们详细了解一下Cairngorm框架的关键组成部分: 1. **...

    cairngorm简单入门实例(结合spring+ibatis)

    学习这个实例,开发者可以了解到如何在实际项目中应用Cairngorm框架,如何将Flex客户端与Spring+iBatis服务端进行交互,以及如何通过事件驱动的方式组织代码,提升项目的可维护性。 总之,这个入门实例为开发者提供...

    flex学习笔记

    - **FLV 播放器**:基于 Flex 构建视频播放功能。 - **CairngormStore 分析**:深入研究官方示例项目。 - **客户端与服务器交互**: - 客户端使用 Flex3 实现。 - 服务器端使用 Java 实现。 - 通过 LiveCycle ...

Global site tag (gtag.js) - Google Analytics