`
wb1991wb
  • 浏览: 157781 次
  • 来自: 上海
社区版块
存档分类
最新评论

【叨、校长】基于Blazeds的Flex应用环境搭建

阅读更多

 

本教程基于Blazeds官方示例!通俗易懂、老少皆宜、不论男女!---叨、校长

1、新建一个Java Web Project---MyBlazeds

2、 添加Blazeds支持!

解压Blazeds.war文件,然后右击项目MyBlazedsWebRoot文件夹—Import…

选择File System、然后找到刚刚解压的Blazeds文件路劲、选中解压后的文件blazeds

然后单击finished,这样就成功的添加了Blazeds的支持!当然也可以手动把blazeds文件复制到项目的webroot目录下!(详情查看图片附件)

 

3、  编写数据服务测试类、这里实现了一个查询、保存的功能!

a)   首现要定义一个持久化对象:本列使用:Person/**

 * 持久化对象Person 注意此类必须序列化、否则Actionscript无法进行转换
 * @author 叨、校长
 *
 */
public class Person implements Serializable{
	private static final long serialVersionUID = 9014182050509201925L;
	private String id;
	private String name;
	private int age;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

 b)         编写一个业务逻辑方法、共Flex客户端调用:

 

/**
 * 业务逻辑类、提供查询、保存对象的方法
 * @author 校长
 *
 */
public class PersonService {
	//查询
	public List<Person> getPerList(String name,int start,int limit) {
		System.out.println("获取数据");
		List<Person> list=new ArrayList<Person>();
		int i=start;
		int total=start+limit;
		System.out.println(i);
		System.out.println(total);
		for(;i<=total;i++){
			int j=(i%10)*111;
			Person bean=new Person();
			bean.setId(i+"");
			bean.setName("@"+name+j);
			bean.setAge(i);
			list.add(bean);
		}
		return list;
	}
	//保存
	public Person savaPerson(Person person) {
		Person p=new Person();
		p.setId(person.getId());
		p.setName(person.getName());
		p.setAge(person.getAge());
		System.out.println("保存数据");
		return p;
	}
}

<!--[if !supportLists]-->c)         <!--[endif]-->然后在remoting-config.xml配置文件里面配置这个类

 

<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service" 
    class="flex.messaging.services.RemotingService">

    <adapters>
        <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
    </adapters>

    <default-channels>
        <channel ref="my-amf"/>
    </default-channels>
    <!-- 配置RemoteObject对象的destination属性 -->
	<destination id="PersonService">
		<properties>
			<source>com.daodao.service.PersonService</source>
			<scope>request</scope>
		</properties>
	</destination>
</service>

 这样,服务器端就配置好了!destination属性可以配置多个!

4、Flex客户端配置:

下面列出主要的配置、as文件,其他的请大家查看附件!

添加一个Person.as类与服务器端的持久化对象绑定、这样AS就能自动把ASObject转换成java对象了

 

package com.daodao.bean
{
	//与远程java bean绑定 属性名、类名一致
	[Bindable]
	[RemoteClass(alias="com.daodao.bean.Person")]
	public class Person
	{
		public function Person()
		{
		}
		public var id:String;
		public var name:String;
		public var age:int;

	}
}
 

在编写一个proxy类、用于与远程服务器的交互

 

package com.daodao.proxy
{
	import com.daodao.bean.Person;
	
	import mx.controls.Alert;
	import mx.rpc.AsyncToken;
	import mx.rpc.remoting.RemoteObject;

	/**
	 * 业务逻辑代理
	 * 		与远程服务进行数据交互
	 * 		使用RemoteObject对象
	 */
	public class PersonProxy
	{
		private var myRemote:RemoteObject;
		
		//构造函数 初始化RemoteObject对象
		public function PersonProxy()
		{
			var destination:String=null;
			destination="PersonService";
			myRemote=new RemoteObject(destination); 
			
		}
		
		//通过RemoteObject调用远程服务的方法,返回一个AsyncToken
		public function getPersonList(name:String,start:int,limit:int):AsyncToken
		{
			return myRemote.getPerList(name,start,limit);
		}
		
		//通过RemoteObject调用远程服务的方法,返回一个AsyncToken
		public function savePerson(p:Person):AsyncToken
		{
			return myRemote.savaPerson(p);
		}
		
	}
}

 这里我给大家提供一个AsyncToken工具类、关于AsyncToken的用发请自行查阅相关资料!

 

package com.daodao.util
{
	import mx.rpc.AsyncToken;
	import mx.rpc.Responder;
	
	//
	public class FlexUtil
	{
		public function FlexUtil()
		{
		}
		
		public static function addRs(token:AsyncToken,result:Function,fault:Function):void
		{
			token.addResponder(new Responder(result,fault));
		}
	}
}

 这样我们就配置好了RemoteObject的逻辑方法!随时可以调用了!

下面我贴出所有的mxml代码

application:

 

<?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" minWidth="955" minHeight="600" xmlns:component="com.daodao.component.*" creationComplete="fillGrid()">
	<fx:Declarations>
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import com.daodao.component.person.AddPerson;
			import com.daodao.proxy.PersonProxy;
			import com.daodao.util.FlexUtil;
			
			import mx.collections.ArrayCollection;
			import mx.controls.Alert;
			import mx.managers.PopUpManager;
			import mx.messaging.AbstractConsumer;
			import mx.rpc.AsyncToken;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			[Bindable]
			public var DG_Array:ArrayCollection; 
			public var token:AsyncToken; 
			public var proxy:PersonProxy=new PersonProxy();
			
			//查询数据方法
			public function fillGrid():void{
				var name:String=text_name.text;
				token=proxy.getPersonList(name,0,20);
				FlexUtil.addRs(token,getResult,getFault);
			}
			private function getResult(event:ResultEvent):void{
				DG_Array=ArrayCollection(event.result);
			}
			private function getFault(event:FaultEvent):void{
				Alert.show("没有数据!");
			}
			
			public function newAddWin():void
			{
				var add_per:AddPerson=new AddPerson();
				PopUpManager.addPopUp(add_per,this,true);
				PopUpManager.centerPopUp(add_per);
			}
		]]>
	</fx:Script>
	<mx:TabNavigator width="100%" height="100%">
		<mx:HDividedBox label="员工管理" width="100%" height="100%">
			<s:Panel width="15%" height="100%" title="功能菜单">
				
			</s:Panel>
			<mx:VBox width="85%" height="100%">
				<s:Panel title="查询" height="100" width="100%" top="10" left="10" right="30">
					<s:Label x="20" y="17" fontSize="18" text="姓名:"/>
					<s:TextInput id="text_name" x="75" y="14"/>
					<s:Button id="btn_name" x="246" y="13" label="查询" click="fillGrid()"/>
					<s:Button x="369" y="11" label="新增" click="newAddWin()"/>
				</s:Panel>
				<mx:DataGrid id="dg" width="100%" height="100%" right="30" dataProvider="{DG_Array}">
					 <mx:columns>
						 <mx:DataGridColumn dataField="id" headerText="Name"/>
						 <mx:DataGridColumn dataField="name" headerText="Phone"/>
						 <mx:DataGridColumn dataField="age" headerText="Email"/>
					 </mx:columns>
				 </mx:DataGrid>
			</mx:VBox>
		</mx:HDividedBox>
		<mx:Box label="考勤管理" width="100%" height="100%">
			
		</mx:Box>
		<mx:Box label="系统管理" width="100%" height="100%">
			
		</mx:Box>
	</mx:TabNavigator>
</s:Application>

 AddPerson://添加对象时的一个Titlewindow组件

 

<?xml version="1.0" encoding="utf-8"?>
<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300" >
	<fx:Script>
		<![CDATA[
			import com.daodao.bean.Person;
			import com.daodao.proxy.PersonProxy;
			import com.daodao.util.FlexUtil;
			
			import mx.controls.Alert;
			import mx.events.CloseEvent;
			import mx.managers.PopUpManager;
			import mx.rpc.AsyncToken;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			
			private var proxy:PersonProxy=new PersonProxy();
			private var token:AsyncToken=new AsyncToken();
			
			private function savePerson():void
			{
				var per:Person=new Person();
				per.id=(f_text_id.text);
				per.name=(f_text_name.text);
				per.age=(2);
				token=proxy.savePerson(per);
				FlexUtil.addRs(token,getResult,getFault);
			}
			
			private function getResult(event:ResultEvent):void{
				var p_rs:Person=new Person();
				p_rs=event.result as Person;
				Alert.show("编号:"+p_rs.id+"\n姓名:"+p_rs.name);
			}
			private function getFault(event:FaultEvent):void{
				Alert.show("没有数据!");
			}
			
			private function closeWin():void
			{
				PopUpManager.removePopUp(this);
			}
		]]>
	</fx:Script>
	<s:Form width="100%">
		<s:FormItem label="编号" width="100%">
			<s:TextInput id="f_text_id"/>
		</s:FormItem>
		<s:FormItem label="姓名" width="100%">
			<s:TextInput id="f_text_name"/>
		</s:FormItem>
		<s:FormItem label="年龄" width="100%">
			<s:TextInput  id="f_text_age"/>
		</s:FormItem>
		<s:Button label="保存" id="btn_save" click="savePerson()"/>
		<s:Button label="关闭" id="btn_close" click="closeWin()"/>
	</s:Form>
</s:TitleWindow>
 

到这里就完成了、效果图在图片附近里面有(Flex客户端源码也上传了!欢迎查阅!)

 

 

 

分享到:
评论

相关推荐

    Myeclipse8.5+flex4.5+Blazeds+SSH环境搭建

    7. **Tomcat 安装**:Tomcat 是一个开源的轻量级应用服务器,主要用来运行 Java Servlet 和 JavaServer Pages(JSP),在本环境中用于部署 Flex 和 BlazeDS 应用。 8. **FlashBuilder 4.5**:FlashBuilder(之前...

    快速搭建基于BlazeDS的FLEX+JAVA WEB应用

    标题 "快速搭建基于BlazeDS的FLEX+JAVA WEB应用" 涉及到的是一个技术教程,旨在指导用户如何构建一个使用Adobe Flex前端和Java后端的Web应用程序,其中BlazeDS作为数据通信的中间件。这个过程涉及到多个关键知识点,...

    flex+java+blazeds配置

    本文将详细介绍如何配置一个基于Flex、Java和BlazeDS的Web工程,以实现客户端Flex与服务器端Java的交互。 1. **BlazeDS介绍** BlazeDS是Adobe公司开发的一个开源项目,它提供了轻量级的消息传递系统,使得Flex...

    Flex+MyEclipse+blazeds+tomacat环境搭建

    本文主要讲述如何利用Flex、MyEclipse、BlazeDS和Tomcat搭建一个用于Flex开发的完整环境。首先,我们需要理解Flex和RIA(Rich Internet Applications)的概念。 Flex是Adobe公司提供的一款用于创建富互联网应用...

    Myeclipse8.5+flex4.5+Blazeds+SSH环境搭建.docx

    本文档主要介绍了如何在Myeclipse8.5环境下搭建Flex4.5、Blazeds和SSH(Spring、Struts、Hibernate)的开发环境。以下是详细步骤及涉及的相关知识点: 1. **Flex和Blazeds简介** - **Flex**:是一种基于...

    flex+blazeds搭建环境步骤

    根据给定的文件信息,以下是对“flex+blazeds搭建环境步骤”的详细解析与扩展,旨在帮助读者深入了解Flex与BlazeDS集成的过程及其在Web开发中的应用。 ### Flex与BlazeDS概述 Flex是一种用于构建和维护客户端应用...

    Flex+blazeDS+Spring官方Demo,环境搭建

    Flex+blazeDS+Spring官方Demo,环境搭建,内含十几个例子,从易到难,包括spring消息,spring安全,注解方式和非注解配置文件方式,十分好用。内含有tomcat,可直接启动并运行用户手册。

    Flex + blazeds + Java入门搭建与简单应用

    本文将深入探讨如何入门搭建Flex + BlazeDS + Java环境,并介绍其基本应用。 首先,我们需要理解Flex。Flex是一款基于ActionScript和MXML的开源框架,主要用于构建具有交互性和动态效果的用户界面。它提供了丰富的...

    MyEclipse_8.5_flex4+Blazeds配置

    【MyEclipse_8.5_flex4+Blazeds配置】是一篇关于在MyEclipse 8.5环境中配置Flex 4和Blazeds的教程。以下是对整个配置过程的详细说明: 首先,你需要准备以下软件: 1. `apachetomcat.exe`:Apache Tomcat服务器,...

    基于Blazeds的flex和java双向通信

    【基于Blazeds的flex和java双向通信】 在IT领域,构建富互联网应用程序(RIA)时,Flex作为前端用户界面框架,与后端Java服务进行交互是常见的需求。Blazeds是Adobe提供的一种解决方案,它使得Flex和Java之间能够...

    Myeclipse8.5+flex4.5+Blazeds+SSH环境搭建及实例-修订版

    网络上好多Myeclipse8.5+flex4.5+Blazeds+SSH环境搭建及实例,个人实验过程中出现了不少问题,通过从网络上搜索各种资源,最后成功整合,以供大家学习。当然,还有部分内容没有修改完,但至少能够成功运行

    Myeclipse8.5+flex4.5+Blazeds+SSH环境搭建.pdf

    搭建MyEclipse8.5与Flex4.5、Blazeds和SSH的开发环境涉及到多个步骤,主要包括安装和配置各种组件。以下是对每个步骤的详细解释: 1. **JDK安装**:首先需要安装Java Development Kit (JDK),这是进行Java开发的...

    最简单的BlazeDS实现flex与java通信.rtf

    最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的...

    Myeclipse8.5+flex4.5+Blazeds+SSH环境搭建及实例.pdf

    这篇文档主要介绍的是如何搭建一个基于MyEclipse 8.5、Flex 4.5、BlazDS以及Spring、Hibernate(SSH)的开发环境,并通过一个实例来展示具体操作步骤。以下是详细的步骤和相关知识点: 1. **所需软件**: - BlazDS...

    基于BlazeDS实现Flex和Java通讯.pdf

    基于BlazeDS实现Flex和Java通讯

    Flex4.5 + Tomcat6.0 + MyEclipse 9.0+ Java+Blazeds环境配置和使用

    标题与描述均聚焦于“Flex4.5 + Tomcat6.0 + MyEclipse 9.0+ Java+Blazeds环境配置和使用”,这一主题涉及了多种技术栈的集成,包括Flex4.5(FlashBuilder)、Tomcat6.0、MyEclipse 9.0、Java以及Blazeds。...

Global site tag (gtag.js) - Google Analytics