【叨、校长】基于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 getPerList(String name,int start,int limit) {
		System.out.println("获取数据");
		List list=new ArrayList();
		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;
	}
}

c)         然后在remoting-config.xml配置文件里面配置这个类

 




    
        
    

    
        
    
    
	
		
			com.daodao.service.PersonService
			request
		
	

 这样,服务器端就配置好了!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:

 



	
	
	
		
	
	
		
			
				
			
			
				
					
					
					
					
				
				
					 
						 
						 
						 
					 
				 
			
		
		
			
		
		
			
		
	

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

 



	
		
	
	
		
			
		
		
			
		
		
			
		
		
		
	

 

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

 

 

 

  • MyFlex_Blazeds.zip (25.5 KB)
  • 下载次数: 33

你可能感兴趣的:(Blazeds,flex,remoteobject)