映射Java ArrayList<;定制类>;和Flex ArrayCollection

映射Java ArrayList<;定制类>;和Flex ArrayCollection,java,apache-flex,arrays,actionscript,lcds,Java,Apache Flex,Arrays,Actionscript,Lcds,我目前正试图通过LCD将java ArrayList与Flex ArrayCollection进行映射。 我的Flex应用程序确实调用了返回ArrayList的Java方法,但我还没有设法检索ArrayList以在Flex端的DataGrid中显示它 JavaSide: 我有两门课: -Jco_test.java:它包含public ArrayList all()方法 -java:它包含一个初始化某些变量的构造函数 public class CustomClass { Stri

我目前正试图通过LCD将java ArrayList与Flex ArrayCollection进行映射。 我的Flex应用程序确实调用了返回ArrayList的Java方法,但我还没有设法检索ArrayList以在Flex端的DataGrid中显示它

JavaSide: 我有两门课: -Jco_test.java:它包含public ArrayList all()方法 -java:它包含一个初始化某些变量的构造函数

    public class CustomClass {

    String airline;
    String cityFrom;
    String cityTo;
    Date flightDate;
    BigDecimal price;

    public CustomClass(String s1, String s2, String s3, Date d, BigDecimal bd){
        airline = s1;
        cityFrom = s2;
        cityTo = s3;
        flightDate = d;
        price = bd;
    }    
}
FlexSide:

  • test.mxml:

            import mx.messaging.AbstractConsumer;
            import mx.collections.ArrayCollection;
            import mx.rpc.events.FaultEvent;
            import mx.rpc.events.ResultEvent;
            import mx.controls.Alert;
    
        public var flightList:ArrayCollection;
    
        public function ResultHandler(event:ResultEvent):void{
            flightList = (event.result as ArrayCollection);             
        }
    
        public function FaultHandler(event:FaultEvent):void{
            flightList = new ArrayCollection();
            ta.text = "Error id: " + event.fault.errorID + "\n";
            ta.text += "String: " + event.fault.faultString + "\n";
            ta.text += "Code: " + event.fault.faultCode + "\n";
            ta.text += "Detail: " + event.fault.faultDetail + "\n";
            ta.text += "Stack: \n" + event.fault.getStackTrace() + "\n";
        }
    
RemoteObject id=“ro”destination=“jco”result=“ResultHandler(事件);”fault=“FaultHandler(事件);”

我做错什么了吗? 我还有一些疑问。。。我的ArrayList没有标题。如何检索DataGridColumn中的数据

谢谢你能提供的帮助。 问候

(很抱歉出现格式问题…)


我确实忘记了接球手和二传手。 现在,我可以在服务器日志中看到我要查找的值。但是Flex仍然无法显示数据

以下是日志:

[LCDS]Adapter 'java-object' called 'com.alti.jco.jco_test.all(java.util.Arrays$A
rrayList (Collection size:0)
)'
[LCDS]Result: 'java.util.ArrayList (Collection size:3)
  [0] = utils.CustomClass
    cityTo = aa
    price = 30
    cityFrom = aa
    flightDate = Sun Jan 12 00:00:00 CET 1913
    airline = aa

  [1] = utils.CustomClass
    cityTo = bb
    price = 30
    cityFrom = bb
    flightDate = Sun Jan 12 00:00:00 CET 1913
    airline = bb

  [2] = utils.CustomClass
    cityTo = cc
    price = 30
    cityFrom = cc
    flightDate = Sun Jan 12 00:00:00 CET 1913
    airline = cc

'
[LCDS]Serializing AMF/HTTP response
Version: 3
  (Message #0 targetURI=/2/onResult, responseURI=)
    (Externalizable Object #0 'DSK')
      (Externalizable Object #1 'flex.messaging.io.ArrayCollection')
        (Array #2)
          [0] = (Typed Object #3 'utils.CustomClass')
            cityTo = "aa"
            price = "30"
            cityFrom = "aa"
            flightDate = Sun Jan 12 00:00:00 CET 1913
            airline = "aa"
          [1] = (Typed Object #5 'utils.CustomClass')
            cityTo = "bb"
            price = "30"
            cityFrom = "bb"
            flightDate = (Ref #4)
            airline = "bb"
          [2] = (Typed Object #6 'utils.CustomClass')
            cityTo = "cc"
            price = "30"
            cityFrom = "cc"
            flightDate = (Ref #4)
            airline = "cc"
1.254745294734E12
(Byte Array #7, Length 16)
(Byte Array #8, Length 16)
(Byte Array #9, Length 16)
我不确定DataGridColumn的datafield是否区分大小写,所以我更改了datafield以匹配每个字段

1观察

在CustomClass.java中添加getter和setter(我解决了我的问题=) 我犯了一个装订错误

我的dataGrid使用“flightList”作为数据提供者,但我没有将其定义为可绑定变量


非常感谢您的回答=)

您的数据字段中是否真的有大写字母,或者是打字错误?请编辑文章以更正代码格式。顺便说一句,数据域是航空公司还是航空公司?@bug-a-lot:我不确定数据域是否区分大小写。我更改了大写字母,以便匹配Java类中的字段@抱歉格式化,但是我的代码格式化有问题。。。不知道为什么,有时候,我的文字只是不想格式化。。。我现在更改了数据字段,它现在是airline(就像在java和actionscript类中一样)。
[Bindable]
[RemoteClass(alias="utils.CustomClass")]
public class CustomClass{
    public var airline:String;
    public var cityFrom:String;
    public var cityTo:String;
    public var flightDate:Date;
    public var price:String;       
}    
[LCDS]Adapter 'java-object' called 'com.alti.jco.jco_test.all(java.util.Arrays$A
rrayList (Collection size:0)
)'
[LCDS]Result: 'java.util.ArrayList (Collection size:3)
  [0] = utils.CustomClass
    cityTo = aa
    price = 30
    cityFrom = aa
    flightDate = Sun Jan 12 00:00:00 CET 1913
    airline = aa

  [1] = utils.CustomClass
    cityTo = bb
    price = 30
    cityFrom = bb
    flightDate = Sun Jan 12 00:00:00 CET 1913
    airline = bb

  [2] = utils.CustomClass
    cityTo = cc
    price = 30
    cityFrom = cc
    flightDate = Sun Jan 12 00:00:00 CET 1913
    airline = cc

'
[LCDS]Serializing AMF/HTTP response
Version: 3
  (Message #0 targetURI=/2/onResult, responseURI=)
    (Externalizable Object #0 'DSK')
      (Externalizable Object #1 'flex.messaging.io.ArrayCollection')
        (Array #2)
          [0] = (Typed Object #3 'utils.CustomClass')
            cityTo = "aa"
            price = "30"
            cityFrom = "aa"
            flightDate = Sun Jan 12 00:00:00 CET 1913
            airline = "aa"
          [1] = (Typed Object #5 'utils.CustomClass')
            cityTo = "bb"
            price = "30"
            cityFrom = "bb"
            flightDate = (Ref #4)
            airline = "bb"
          [2] = (Typed Object #6 'utils.CustomClass')
            cityTo = "cc"
            price = "30"
            cityFrom = "cc"
            flightDate = (Ref #4)
            airline = "cc"
1.254745294734E12
(Byte Array #7, Length 16)
(Byte Array #8, Length 16)
(Byte Array #9, Length 16)