java返回ArrayList,Flex通过remote方式进行接收,然后通过datagrid,只能取得一列数据
正在学习flex,我用java编写一个后台服务程序getuserdb.java,返回了一个ArrayList,,其中arraylist中存放了一个user类数据,通过servlet调用getuserdb.class程序能够取得arraylist中所有的数据,但用Flex通过remote方式调用getuserdb中的方法,然后通过datagrid,发现只能显示最后一列数据,在flex4中调试,发现返回的数据确实只有一列,不知道是为什么,请问该如何解决。
由于我还没有积分,请各位谅解,谁回答我的问题,以后一定给你补上。
[解决办法]
首先确认你通过java方法获取的数据是不是只有一条,如果通过java调用没错的,你再看看赋值时候是否有错,就是你将java方法获取的数据赋给ArrayList的时候是否出错
[解决办法]
没代码,不好说。
一个是java端,用数组来接查询结果。
flex端,用数组接值,或者直接赋值时,xxx.dataProvider = data as Array;
如果你是用eclipse开发的话,请下载flex的debug插件,直接debug就清楚问题了
[解决办法]
看看java端是否只获得了一条数据,如果不是,再仔细看看flex部分
没代码不好说
[解决办法]
楼主说的只有最后一列 数据, 没有代码不好说.
好像都人为是 最后一行 .
呵呵
[解决办法]
你在循环外定义 UserInfo user=new UserInfo();
放到userlist 中肯定是一个 user.
while(this.rs.next()){
UserInfo user=new UserInfo();
String col1=rs.getString(1);
String col2=rs.getString(2);
String col3=rs.getString(3);
String col4=rs.getString(4);
//UserInfo user=new UserInfo(col1,col2,col3,col4);
user.setUserId(col1);
user.setBumengId(col2);
user.setBumengName(col3);
user.setName(col4);
userlist.add(user);
}
你在java 端应该也是看到一行数据.
不想你说的 在java端看到所有数据.
也不是只看到一列数据. 而是看到一行数据.
[解决办法]
<mx:DataGrid id="userData" x="240" y="116" width="412" height="225">
<mx:columns>
<mx:DataGridColumn headerText="id" dataField="userId"/>
<mx:DataGridColumn headerText="名称" dataField="name"/>
<mx:DataGridColumn headerText="部门Id" dataField="bumengId"/>
<mx:DataGridColumn headerText="部门名称" dataField="bumengName"/>
</mx:columns>
</mx:DataGrid>