flex和java的问题
我是用blazeds来通信的,已经断点确认flex调到了java的方法。问题是:我的java方法返回了List类型的值,在flex里试过用ArrayCollection和...
我是用blazeds来通信的,已经断点确认flex调到了java的方法。问题是:我的java方法返回了List类型的值,在flex里试过用ArrayCollection和List来接收,都是空值。代码如下:
java方法:
public List showAll(){
List l=new ArrayList();
Book b=new Book();
b.setAuth("James Gosling");
b.setBookName("《Java编程规范》");
b.setPrice("30.00");
b.setPublish("出版社01");
b.setType("计算机软件");
Book b1=new Book();
b1.setAuth("朱平,王连清");
b1.setBookName("实用激光针灸手册");
b1.setPrice("16.00");
b1.setPublish("人民军医出版社");
b1.setType("医学");
l.add(b);
l.add(b1);
return l;
}
flex接收:
var bookList:ArrayCollection;
public function showAll():ArrayCollection{
bookList=checkBooks.showAll() as ArrayCollection;
myDG.dataProvider=bookList;
return bookList;
}断点发现这bookList是空的。请问原因出在哪呢,不胜感激 展开
java方法:
public List showAll(){
List l=new ArrayList();
Book b=new Book();
b.setAuth("James Gosling");
b.setBookName("《Java编程规范》");
b.setPrice("30.00");
b.setPublish("出版社01");
b.setType("计算机软件");
Book b1=new Book();
b1.setAuth("朱平,王连清");
b1.setBookName("实用激光针灸手册");
b1.setPrice("16.00");
b1.setPublish("人民军医出版社");
b1.setType("医学");
l.add(b);
l.add(b1);
return l;
}
flex接收:
var bookList:ArrayCollection;
public function showAll():ArrayCollection{
bookList=checkBooks.showAll() as ArrayCollection;
myDG.dataProvider=bookList;
return bookList;
}断点发现这bookList是空的。请问原因出在哪呢,不胜感激 展开
4个回答
2012-08-24
展开全部
在flex里有<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<s:RemoteObject id="checkBooks" destination="¥¥¥">
<s:method name="showAll" result="$$$(event)" fault="$$$$$(event)"/>
</s:RemoteObject>
调用远程对象方法showAll后面有个result属性实现某方法,在方法中这个event.result as ArrayCollection 获得的值给你定义的bookList就得到值了
<s:RemoteObject id="checkBooks" destination="¥¥¥">
<s:method name="showAll" result="$$$(event)" fault="$$$$$(event)"/>
</s:RemoteObject>
调用远程对象方法showAll后面有个result属性实现某方法,在方法中这个event.result as ArrayCollection 获得的值给你定义的bookList就得到值了
展开全部
bindable一下booklist吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
检查一下blazeds的remote层配置文件,看看是否有将这个函数配进去。
有一段时间没用这个框架了,有点生疏,期待其他大神的解答。
有一段时间没用这个框架了,有点生疏,期待其他大神的解答。
更多追问追答
追问
断点能进入java函数的代码,表明配置无误了吧。。其实返回字符串还是可以的,返回集合就不行了
追答
之前用spring+blazeds+mina,没有出现过这种问题耶。。。是不是flex没有bind booklist
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.checkBooks.showAll() 先看看这段代码能不能返回数据,如果能返回数据就说明在类型转换的时候出错了(as ArrayCollection),如果不能返回数据,就说明checkBooks.showAll() 并没有被填充数据。
2.如果Java端返回的List集合不为空,那你就得看看直接返回List集合是否合适。或许在你们公司的协议里面并没有办法直接返回List集合。再看看公司的协议,看看什么类型的Java对象在被转换成为xml的时候,能被Flex端解析。(我之前的公司用的是TableEntity进行解析的不能直接返回List集合)
2.如果Java端返回的List集合不为空,那你就得看看直接返回List集合是否合适。或许在你们公司的协议里面并没有办法直接返回List集合。再看看公司的协议,看看什么类型的Java对象在被转换成为xml的时候,能被Flex端解析。(我之前的公司用的是TableEntity进行解析的不能直接返回List集合)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询