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()
{
}
}
}
分享到:
相关推荐
java flexjava flexjava flex
Java与Flex集成。 Java与Flex集成。 Java与Flex集成。
Flex与Java实现通信,Flex与Java实现通信,Flex与Java实现通信
最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的...
Flex与java通讯 Flex与java通讯
拿来直接就用的flex 和java交互的入门实例,简单的不能再简单,包括所有的jar包
flex 数据库操作 romotingobject 连接java后台文件 与数据库进行交互
flex框架flex框架 JAVA-FLEXflex框架 JAVA-FLEX
Flex+Java Servlet处理文件上传 关于上传文件
flex与java通信
Flex+Java完美整合框架,cleartookit使用Balaze框架
Flex和java交互搭建,新手可以用来练手,简单易懂
Flex与Java整合demo Flex Java 整合 demo
Flex与Java通过实体传递数据
项目的一部分源码flex+java,项目的一部分源码flex+java,项目的一部分源码flex+java,
flex_spring_blazeDS 项目是flex spring blazeDS 通过配置文件完成flex与java通信的可以正常运行的实例。该源码在flex4与MyEclipse环境下整合成功,实现了Flex、spring、blazeDS的整合。
Flex+Java 文件上传
里面是自己找的一些flex整合java开发的资料,需要的同学可以看看。
Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、...
一个flex+java的登录实例完整版+flex框架 一个flex+java的登录实例完整版+flex框架