Java后台返回List数据类型 Flex前端利用ArrayCollection取值 出现问题

时间:2021-10-02 20:18:53
各位高手,帮帮忙哈,这个问题已经困扰我两天了,在网上看了大量资料,也找不到好的解决办法,我都郁闷死了

我的Java后台返回了List数据类型的数据,我在Flex前端通过ArrayCollection接收的,将返回值绑定到我的ComboBox上,可是运行了之后,不知道怎么回事,我的那个comboBox下拉列表框出现的就是【object object】,很多的这样的值,我很是想不通,太奇怪了!!!!!

15 个解决方案

#1


高手们,怎么没反应啊!!!赶紧过来帮我看看哈,不甚感激!!!!在此先谢过了!!

#2


labelField 属性没有设置。

#3


设置labelField为你要显示的属性就行了

#4


我也出现这个原因  不过我的有主外键的关联  外键是object  其他的就有值了  

#5


不对,不是的,我的那个labelField是设置了的。不是这个原因!!!高手们,帮我看看还有没有其他的原因呀???问题还在这,一直解决不了!!!!

#6


引用 5 楼 wky2011rjkf 的回复:
不对,不是的,我的那个labelField是设置了的。不是这个原因!!!高手们,帮我看看还有没有其他的原因呀???问题还在这,一直解决不了!!!!


数据源是什么样子的?贴出来看看

#7


List<Authority> l = q.list();  
          
        List l2 = null;  
        if (l.size()!=0) {  
              
            l2 = new ArrayList();  
            for(int i=0;i<l.size();i++){  
                HashMap hm = new HashMap();  
                hm.put("rid",""+((Authority)l.get(i)).getRid());  
                hm.put("rname",""+((Authority)l.get(i)).getRname());  
                l2.add(hm);  
            }  
        }  
return l2;  

高手,这个是我的数据源呀,在Eclipse中调试能取到我返回的值的,应该没什么问题吧???我觉得不关数据源的事情,还是Flex和Java衔接部分出故障了!!!你觉得呢????

#8


引用 7 楼 wky2011rjkf 的回复:
List<Authority> l = q.list();  
          
        List l2 = null;  
        if (l.size()!=0) {  
              
            l2 = new ArrayList();  
            for(int i=0;i<l.size();i++){  
……


我是说你flex端接收的数据样子!
既然能出现Object说明数据是到了的。不过对于属性值是没有绑定正确。

#9


<?xml version="1.0" encoding="utf-8"?>  
  
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="712" height="563" showCloseButton="true" title="新建用户" x="288" y="226" xmlns:ns1="ui.panel.admin.*" initialize="getPos()">  
    <mx:Script>  
        <[CDATA[  
            import mx.collections.ArrayCollection;  
            import mx.controls.List;  
            import mx.rpc.events.ResultEvent;  
            import mx.controls.Alert;  
            [bindable]  
            private var posArray:ArrayCollection = new ArrayCollection();  
                          
            function getPos():void{  
                hasuser.getRoles();  
            }  
              
            function getPosition(event:ResultEvent):void{  
                posArray = ArrayCollection(event.result);  
                position.dataProvider = posArray;  
            }  
function close():void{  
                                trace(""+position.selectedItem.rid);  
                        }  
        ]]>  
    </mx:Script>  
    <mx:RemoteObject id="hasuser" destination="islogin">  
    <mx:method name="getRoles" result="getPosition(event)"/>  
    </mx:RemoteObject>  
          
    <mx:ComboBox x="426" y="249" id="position" width="160.75" editable="false" color="#0B333C" fontSize="12" prompt="请选择职位..." fontWeight="bold" labelField="rname" close="close()"></mx:ComboBox>  
</mx:TitleWindow>  
这个是我的前端呀,看看,是不是前端出的问题,应该也不至于吧???

#10


属性值是没有绑定正确????不就是 position.dataProvider = posArray; 这样子么??难道不是???  

#11


怎么没人说话了呢????

#12


楼主为什么java代码里要用map啊,
你这既然已经有这个数据了,List<Authority> l = q.list();   
为什么还要放到map里面呢?

#13


呵呵,搞错了搞错了!!谢谢各位的答复,我已经清楚我的问题所在了,真的非常感谢!!!

#14


我结贴咯!!!!

#15


现在的我也遇到同样的问题了,楼下回答一下...

#1


高手们,怎么没反应啊!!!赶紧过来帮我看看哈,不甚感激!!!!在此先谢过了!!

#2


labelField 属性没有设置。

#3


设置labelField为你要显示的属性就行了

#4


我也出现这个原因  不过我的有主外键的关联  外键是object  其他的就有值了  

#5


不对,不是的,我的那个labelField是设置了的。不是这个原因!!!高手们,帮我看看还有没有其他的原因呀???问题还在这,一直解决不了!!!!

#6


引用 5 楼 wky2011rjkf 的回复:
不对,不是的,我的那个labelField是设置了的。不是这个原因!!!高手们,帮我看看还有没有其他的原因呀???问题还在这,一直解决不了!!!!


数据源是什么样子的?贴出来看看

#7


List<Authority> l = q.list();  
          
        List l2 = null;  
        if (l.size()!=0) {  
              
            l2 = new ArrayList();  
            for(int i=0;i<l.size();i++){  
                HashMap hm = new HashMap();  
                hm.put("rid",""+((Authority)l.get(i)).getRid());  
                hm.put("rname",""+((Authority)l.get(i)).getRname());  
                l2.add(hm);  
            }  
        }  
return l2;  

高手,这个是我的数据源呀,在Eclipse中调试能取到我返回的值的,应该没什么问题吧???我觉得不关数据源的事情,还是Flex和Java衔接部分出故障了!!!你觉得呢????

#8


引用 7 楼 wky2011rjkf 的回复:
List<Authority> l = q.list();  
          
        List l2 = null;  
        if (l.size()!=0) {  
              
            l2 = new ArrayList();  
            for(int i=0;i<l.size();i++){  
……


我是说你flex端接收的数据样子!
既然能出现Object说明数据是到了的。不过对于属性值是没有绑定正确。

#9


<?xml version="1.0" encoding="utf-8"?>  
  
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="712" height="563" showCloseButton="true" title="新建用户" x="288" y="226" xmlns:ns1="ui.panel.admin.*" initialize="getPos()">  
    <mx:Script>  
        <[CDATA[  
            import mx.collections.ArrayCollection;  
            import mx.controls.List;  
            import mx.rpc.events.ResultEvent;  
            import mx.controls.Alert;  
            [bindable]  
            private var posArray:ArrayCollection = new ArrayCollection();  
                          
            function getPos():void{  
                hasuser.getRoles();  
            }  
              
            function getPosition(event:ResultEvent):void{  
                posArray = ArrayCollection(event.result);  
                position.dataProvider = posArray;  
            }  
function close():void{  
                                trace(""+position.selectedItem.rid);  
                        }  
        ]]>  
    </mx:Script>  
    <mx:RemoteObject id="hasuser" destination="islogin">  
    <mx:method name="getRoles" result="getPosition(event)"/>  
    </mx:RemoteObject>  
          
    <mx:ComboBox x="426" y="249" id="position" width="160.75" editable="false" color="#0B333C" fontSize="12" prompt="请选择职位..." fontWeight="bold" labelField="rname" close="close()"></mx:ComboBox>  
</mx:TitleWindow>  
这个是我的前端呀,看看,是不是前端出的问题,应该也不至于吧???

#10


属性值是没有绑定正确????不就是 position.dataProvider = posArray; 这样子么??难道不是???  

#11


怎么没人说话了呢????

#12


楼主为什么java代码里要用map啊,
你这既然已经有这个数据了,List<Authority> l = q.list();   
为什么还要放到map里面呢?

#13


呵呵,搞错了搞错了!!谢谢各位的答复,我已经清楚我的问题所在了,真的非常感谢!!!

#14


我结贴咯!!!!

#15


现在的我也遇到同样的问题了,楼下回答一下...