I believe anything implementing java.util.Collection, such as List, is
already being converted to an ArrayCollection on the Flex side.

http://livedocs.macromedia.com/flex/2/docs/00001104.html#270405
<http://livedocs.macromedia.com/flex/2/docs/00001104.html#270405>

In your result handler, try:

var col:ArrayCollection = re.result as ArrayCollection;


--- In [email protected], "ytseshred" <[EMAIL PROTECTED]> wrote:
>
> I'm using RemoteObjects to connect to my backend. In one of my calls
> I'm trying to return a List of VO's I create after hitting my
database.
>
> On the Flex side, my result event is firing properly, but when I try
> to convert the result to an ArrayCollection, instead of getting a
> proper ArrayCollection I get single element that displays the
> following when I output it in an alert: "obj is: '[object TestVO],
> [object TestVO], ... [object TestVO]'".
>
> If I return a single TestVO object directly instead of a List, I can
> properly cast the result to my ActionScript TestVO object and view the
> data properly. It's just returning the List that's giving me problems.
>
> Can anyone offer any suggestions please?
>
> My Flex result code is:
>
> public function result(evt:Object):void {
> if(evt.type && evt.type == ResultEvent.RESULT) {
> var re:ResultEvent = evt as ResultEvent;
> var col:ArrayCollection = new
> ArrayCollection(ArrayUtil.toArray(re.result));
> if(col) {
> Alert.show("obj is: '" + col.getItemAt(0) + "'");
> }
> else Alert.show("Didn't cast properly!");
> }
> }
>
> My Java DAO code that returns the list is:
>
> public List getList() throws DAOException {
> List list = new ArrayList();
> Connection c = null;
>
> try {
> c = ConnectionHelper.getConnection();
> Statement s = c.createStatement();
> ResultSet rs = s.executeQuery("SELECT * FROM test");
> while(rs.next()) {
> TestVO vo = new TestVO();
> vo.id = rs.getInt("id");
> vo.data = rs.getString("data");
> list.add(vo);
> }
> } catch(Exception e) {
> e.printStackTrace();
> throw new DAOException(e);
> } finally {
> ConnectionHelper.close(c);
> }
> return list;
> }
>


Reply via email to