`
kaidi0314
  • 浏览: 86072 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Flex 对Java端返回Collection的处理

    博客分类:
  • flex
 
阅读更多
Flex 对Java端返回Collection的处理方法 将Flex与Spring集成后(BlazeDS 与Spring集成指南 ),
第一个面临的问题就是:对于Java端返回的各种Java类型的对象,Flex中能否有相应的数据类型来映射处理,尤其是List、Set、Map及POJO对象值。
在 BlazeDS 与Spring集成指南 例子的基础上,调整相关的测试代码如下:

一、java端
1)JavaSendList.java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class JavaSendList {

	public String hello(String var1) {
		return "hello " + var1;
	}

	public String world(String var1) {

		return "world " + var1;
	}

	public Map<String, List> getMap() {
		ArrayList list1 = new ArrayList();
		list1.add("value11");
		list1.add("value12");
		list1.add("value13");

		ArrayList list2 = new ArrayList();
		list2.add("value21");
		list2.add("value22");
		list2.add("value23");
		ArrayList list3 = new ArrayList();
		list3.add("value31");
		list3.add

		("value32");
		list3.add("value33");
		HashMap<String, List> map = new HashMap<String, List>();
		map.put("key1", list1);
		map.put("key2", list2);
		map.put("key3", list3);
		return

		map;
	}

	public ArrayList getList() {
		ArrayList list = new ArrayList();
		Person p1 = new Person();
		p1.setName("name1");
		p1.setPass("pass1");
		Person p2 = new Person();

		p2.setName("name2");
		p2.setPass("pass2");
		Person p3 = new Person();
		p3.setName("name3");
		p3.setPass("pass3");
		list.add(p1);
		list.add(p2);
		list.add(p3);
		return list;
	}

	public Set getSet() {
		HashSet set = new HashSet();
		Person p1 = new Person();
		p1.setName("name1");
		p1.setPass("pass1");
		Person p2 = new Person();
		p2.setName("name2");

		p2.setPass("pass2");
		Person p3 = new Person();
		p3.setName("name3");
		p3.setPass("pass3");
		set.add(p1);
		set.add(p2);
		set.add(p3);
		return set;
	}
}


2)Person.java
public class Person {

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPass() {
		return pass;
	}

	public void setPass(String pass) {
		this.pass = pass;
	}

	private String name;
	private String pass;
}



二、flex端
1)flexAcceptList.mxml
<?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">
	<s:layout>
		<s:BasicLayout/>
	</s:layout>
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection; 
			import mx.rpc.events.FaultEvent; 
			import mx.controls.Alert; 
			import mx.rpc.events.ResultEvent; 
			import Person; 
			
			[Bindable] 
			public var person:Person; 
			[Bindable] 
			public var map:ArrayCollection=null; 
			
			function sayHello(event:Event):void { 
//				var inputVar:String=inputStr.text; 
//				test1.hello(inputVar); 
			} 
			
			function sayWorld(event:Event):void { 
//				var inputVar:String=inputStr.text; 
//				test1.world(inputVar); 
			} 
			
			private function sayHelloResult(event:ResultEvent):void { 
//				result.text=event.result.toString(); 
				Alert.show(event.result.toString(), "返回结果"); 
			} 
			
			private function sayWorldResult(event:ResultEvent):void { 
//				result.text=event.result.toString(); 
				Alert.show(event.result.toString(), "返回结果"); 
			} 
			
			private function getMapResult(event:ResultEvent):void { 
				for (var key:String in event.result) { 
					var list:ArrayCollection=event.result[key] as ArrayCollection; 
					for (var key1:Object in list) { 
						Alert.show("map item key is: " + key + " value is: " + key1); 
					} 
				} 
			} 
			
			private function getList():void { 
//				test1.getList(); 
			} 
			
			private function getListResult(event:ResultEvent):void { 
				var ac:ArrayCollection=event.result as ArrayCollection; 
				for (var i:int=0; i < ac.length; i++) { 
					var p1:Person=ac.getItemAt(i) as Person; 
					Alert.show("list item name is: " + p1.name+" \n another usage : "+ac.getItemAt(i).name); 
				} 
			} 
			
			private function getSet():void { 
//				test1.getSet(); 
			} 
			
			private function getSetResult(event:ResultEvent):void { 
				var ac:ArrayCollection=event.result as ArrayCollection; 
				for (var i:int=0; i < ac.length; i++) { 
					var p1:Person=ac.getItemAt(i) as Person; 
					Alert.show("set item name is: " + p1.name); 
				} 
			} 
		]]>
	</fx:Script>
</s:Application>


2)Person.as
package
{
	[Bindable] 
	[RemoteClass(alias="com.yeeach.Person")] 
	public class Person
	{
		public var name:String; 
		public var pass:String; 
		
		public function Person()
		{
		}
	}
}
分享到:
评论

相关推荐

    flex flex和 java交互

    8. **测试交互**:运行Flex应用程序,触发对Java服务的调用,观察结果是否正确显示在Flex界面上。 9. **错误处理和优化**:添加错误处理机制,优化通信效率,确保系统的稳定性和性能。 在描述中提到的“包括所有的...

    flex+java+mysql登录

    在"flex+java+mysql登录"这个场景中,我们主要探讨的是如何使用Flex客户端与Java后台进行通信,以及通过Java处理数据库交互来实现用户登录功能。 1. Flex数据库操作:Flex中的数据访问通常通过 BlazeDS 或 LCDS ...

    Java_Flex,Java_Flex,Java_Flex

    Java_Flex技术结合了Java的强大后端处理能力和Flex的富互联网应用程序(RIA)前端展示功能,为开发跨平台、交互性强的Web应用提供了强大的解决方案。本文将深入探讨Java与Flex的集成,以及如何利用这两项技术的优势...

    新建Flex+Java的WEB项目

    而Java则作为后端服务器端的技术,处理业务逻辑和数据管理。下面将详细介绍这个项目可能涉及的技术和步骤。 1. **Flex SDK**:Flex开发需要Adobe Flex SDK,这是一个包含MXML和ActionScript编译器的工具集。开发者...

    flex与java通信

    这种通信机制使Flex能够利用Java的强大功能来处理复杂的业务逻辑和数据管理。 在Flex和Java之间进行通信时,通常会用到两种主要技术:AMF(Action Message Format)和SOAP(Simple Object Access Protocol)。AMF是...

    flex整合java开发的资料

    4. **Flex+Java简单例子.doc**:这个文档可能包含了一些基础的Flex与Java集成的例子,可能涵盖如何创建Flex客户端,定义服务接口,以及如何在Java服务器端实现这些接口,最后展示如何在Flex应用中调用这些服务。...

    Flex与java通讯

    Flex作为Adobe推出的基于ActionScript的开放源代码框架,主要用于构建交互性强的用户界面,而Java则是一种广泛使用的后端开发语言,提供了强大的服务器端功能。二者结合可以实现前端与后端的有效数据交换,为用户...

    flex连接java服务端

    而Java服务端则通常指的是使用Java语言编写的应用程序,运行在服务器端,处理来自客户端(如Flex应用)的请求并返回数据。 在Flex和Java之间的通信中,最常用的技术是AMF(Action Message Format),这是一种二进制...

    flex+java入门

    5. **JOTO对象映射**:了解如何在Flex客户端声明Java对象,以及在服务器端如何处理这些对象。这涉及到数据类型的映射和对象的序列化。 6. **事件驱动编程**:在Flex中,事件驱动模型是主要的编程模式。学习如何监听...

    Flex与Java实现通信

    BlazeDS是一个开放源代码的服务器端Java远程处理和Web消息传递技术,它允许开发者轻松地将Flex和AIR应用程序连接到后端服务器上运行的Java对象。通过BlazeDS,开发者可以: - 实现客户端与服务器之间的实时通信。 -...

    Flex和java交互搭建

    Flex和Java交互搭建是开发富互联网应用程序(RIA)时常用的一种技术组合,它允许前端的Flex界面与后端的Java服务器进行数据交换和业务逻辑处理。这个项目新手用来练手非常合适,因为其结构简单,易于理解。接下来,...

    Flex+Java 文件上传

    - 记得处理异常并返回适当的响应,例如JSON或XML格式的响应,以便Flex客户端可以获取上传状态。 4. **配置Web服务器和Servlet**: 配置Web服务器(如Tomcat)以部署包含Servlet的Web应用程序,并确保Servlet映射...

    flex与java通信的完整demo

    Flex与Java通信是Web开发中的一个重要技术组合,它允许用户在浏览器端利用Flash的富互联网应用(RIA)特性,通过ActionScript与服务器端的Java应用程序进行数据交互。本压缩包包含了一个完整的Flex与Java通信的示例...

    Flex与Java的交互

    在Java端,我们需要创建一个Servlet,如`SimpleServiceServlet`,处理HTTP请求并返回响应。在Flex中,配置HTTPService组件,指定Servlet的URL,以及处理结果和错误的回调函数。 ```java // Servlet代码 public ...

    Flex + Java 最佳实例(附工程)

    而Java作为后端开发语言,提供了强大的服务器端处理能力和稳定的安全性。本实例旨在为初学者和开发者提供一个直观的学习平台,通过实际项目案例,深入理解Flex与Java的集成开发。 一、Flex简介 Flex是一个基于...

    Flex和java交互的示例代码

    本文将详细介绍如何通过Flex与Java进行数据交换,包括Flex客户端的实现方式、Java后端的数据处理逻辑,以及两者之间的通信机制。 #### 二、Java Bean定义 Java Bean是一种遵循特定编码规范的Java类,它用于封装...

    Flex+Java+(lcds)源码

    2. Java后端服务:项目可能包含了用Java编写的服务端接口,如RESTful API或SOAP服务,用于处理Flex客户端发送的数据请求。 三、LCDSS的作用 1. 数据推送:LCDSS支持双向通信,可以将服务器端的数据实时推送到Flex...

    flex+java 项目创建 和 例子

    这些例子会展示如何在Flex中创建UI组件,定义事件处理程序,以及如何在Java端处理请求和返回响应。 5. **部署和测试**:介绍如何将Flex应用打包成SWF文件并部署到Web服务器,以及如何与Java应用程序进行集成测试,...

    flex如何跟JAVA结合

    在PPT中,可能会详细展示如何配置BlazeDS或LCDS,设置Flex客户端的AMF通道,以及在Java服务器端创建AMF处理类。此外,还会讲解如何在Flex中使用HTTPService进行REST调用,以及Java如何实现REST接口。同时,PPT可能...

Global site tag (gtag.js) - Google Analytics