Flex Collection的处理方法

Flex Java端返回Collection的处理方法

对于Java端返回的各种Java类型的对象,Flex中能否有相应的数据类型来映射。处理,尤其是ListSetMapPOJO对象值。

 

1、java端

HelloWorldService.java

import java.util.ArrayList;

import java.util.HashMap;

import java.util.HashSet;

import java.util.List;

public class HelloWorldService {

public String hello(String var1) {

return "hello " + var1;

}

public String world(String var1) {

return "world " + var1;

}

public Map<String,List<String>> getMap() {

ArrayList<String> list1=new ArrayList<String>();

list1.add("value11");

list1.add("value12");

list1.add("value13");

ArrayList<String> list2=new ArrayList<String>();

list2.add("value21");

list2.add("value22");

list2.add("value23");

ArrayList<String> list3=new ArrayList<String>();

list3.add("value31");

list3.add("value32");

list3.add("value33");       

HashMap<String,List<String>> map=new HashMap<String,List<String>>();

map.put("key1", list1);

map.put("key2", list2);

ap.put("key3", list3);       

return map;

}

public ArrayList<Person> getList() {

ArrayList <Person> list=new ArrayList<Person>();

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<Person> getSet() {

HashSet<Person>  set=new HashSet<Person>();

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;

}

}

       Person.java

public class Person {

private String name;

private String pass;

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;

    }

}

      

 

    2、flex端RemoteObject

<mx:RemoteObject destination="test1" id="test1">

<mx:method name="hello" result="sayHelloResult(event)"/>

<mx:method name="world" result="sayWorldResult(event)"/>

<mx:method name="getMap" result="getMapResult(event)"/>

<mx:method name="getList" result="getListResult(event)"/>

<mx:method name="getSet" result="getSetResult(event)"/>

</mx:RemoteObject>

       ActionScript

<mx:Script>

<![CDATA[

    import mx.collections.ArrayCollection;

        import mx.rpc.events.FaultEvent;

        import mx.controls.Alert;

        import mx.rpc.events.ResultEvent;

        import com.yeeach.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(), "返回结果");

        }

        //***************map

        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();

        }

        //***************list

        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();

        }

        //***************set

        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);

            }

        }           

    ]]>

</mx:Script>

 

       3、总结

       aJavaBeanJava端返回给Flex,可以通过FlexMeta Tag [RemoteClass (alias=“”)]来标识服务器端对应的Java的类(一般为POJO对象)。

注意位置,是在class声明前。

    bJava Collection返回给Flex,都可以通过转化为mx.collections.ArrayCollection来进行处理。

    cFlex对于服务器端返回的java其他类型的处理,相对简单,可以参考

http://livedocs.adobe.com/flex/3/html/help.html?content=data_access_4.html

 

内容概要:本文详细介绍了基于FPGA的144输出通道可切换电压源系统的设计与实现,涵盖系统总体架构、FPGA硬件设计、上位机软件设计以及系统集成方案。系统由上位机控制软件(PC端)、FPGA控制核心和高压输出模块(144通道)三部分组成。FPGA硬件设计部分详细描述了Verilog代码实现,包括PWM生成模块、UART通信模块和温度监控模块。硬件设计说明中提及了FPGA选型、PWM生成方式、通信接口、高压输出模块和保护电路的设计要点。上位机软件采用Python编写,实现了设备连接、命令发送、序列控制等功能,并提供了一个图形用户界面(GUI)用于方便的操作和配置。 适合人群:具备一定硬件设计和编程基础的电子工程师、FPGA开发者及科研人员。 使用场景及目标:①适用于需要精确控制多通道电压输出的实验环境或工业应用场景;②帮助用户理解和掌握FPGA在复杂控制系统中的应用,包括PWM控制、UART通信及多通道信号处理;③为研究人员提供一个可扩展的平台,用于测试和验证不同的电压源控制算法和策略。 阅读建议:由于涉及硬件和软件两方面的内容,建议读者先熟悉FPGA基础知识和Verilog语言,同时具备一定的Python编程经验。在阅读过程中,应结合硬件电路图和代码注释,逐步理解系统的各个组成部分及其相互关系。此外,实际动手搭建和调试该系统将有助于加深对整个设计的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值