В настоящее время я пытаюсь отобразить java ArrayList с помощью Flex ArrayCollection через LCDS.
Мое приложение Flex вызывает метод Java, который возвращает ArrayList, но мне не удалось получить ArrayList, чтобы отобразить его в DataGrid на стороне Flex.
JavaSide:
У меня есть 2 класса:
- Jco_test.java: он содержит метод public ArrayList all ()
- Customclass.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:
RemoteObject id = "ro" destination = "jco" result = "ResultHandler (event);" неисправности = "FaultHandler (событие);"
<mx:Panel title="monTest" width="699" height="549" x="10">
<mx:Button label="go" click="ro.all();"/>
<mx:DataGrid dataProvider="flightList">
<mx:columns>
<mx:DataGridColumn dataField="AIRLINE" headerText="Airline" />
<mx:DataGridColumn dataField="CITYFROM" headerText="From" />
<mx:DataGridColumn dataField="CITYTO" headerText="To" />
<mx:DataGridColumn dataField="FLIGHTDATE" headerText="Date" />
<mx:DataGridColumn dataField="PRICE" headerText="Price" />
</mx:columns>
</mx:DataGrid>
<mx:TextArea id="ta" width="100%" height="219"/>
</mx:Panel>
Я что-то не так делаю?
У меня все еще есть некоторые сомнения ... Мой 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, поэтому я изменил поля данных в соответствии с каждым полем.