求教 flex 传递 arraycollection to java

shookui 2010-03-18 05:04:21
代码如下:
flex :
XML code<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.collections.ArrayCollection;
import mx.controls.Alert;

private var testArray:ArrayCollection;

private function tmpClick():void{
testArray=new ArrayCollection();
var employee:Object = new Object();

employee.Month="2009/08"
employee.QTY = "21";
employee.UnitPrice = "21";
employee.Revenue="12";
employee.TesterQty = "21";
employee.HistoryQTY = "12";
employee.HistoryUnitPrice = "21";
employee.Remark = "11";

testArray.addItem(employee);

remoteObject.test(testArray);
}

private function testHandler(event:ResultEvent):void{
Alert.show(event.result as String);
}
]]>
</mx:Script>

<mx:RemoteObject id="remoteObject" destination="flex_java_interface" showBusyCursor="true">
<mx:method name="test" result="testHandler(event)"/>
</mx:RemoteObject>

<mx:Button click="tmpClick()"/>
</mx:Application>





后台java类:
Java codepublic String test(List tmpMonthForecastArray){
int i=0;
String tmpMonth="";
String tmpQTY="";
String tmpUnitPrice="";
String tmpRevenue="";
String tmpTesterQTY="";
String tmpHistoryUnitPrice="";
String tmpRemarkString="";
String result=null;

Map stateObj;

try {
for(i=0;i<tmpMonthForecastArray.size();i++){
stateObj=new HashMap();
stateObj=(Map) tmpMonthForecastArray.get(i);
tmpMonth=stateObj.get("Month").toString();
tmpQTY=stateObj.get("QTY").toString();
tmpUnitPrice=stateObj.get("UnitPrice").toString();
tmpRevenue=stateObj.get("Revenue").toString();
tmpTesterQTY=stateObj.get("TesterQTY").toString();
tmpHistoryUnitPrice=stateObj.get("HistoryUnitPrice").toString();
tmpRemarkString=stateObj.get("Remark").toString();
result=result+tmpMonth;
}

return result;
} catch (Exception e) {
// TODO: handle exception
return null;
}
}



我觉得应该返回的是:2009/08,但实际返回的是空,请问老大们是不是这样写错了?
还请给个解决方法,小弟谢谢!
...全文
489 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tz_Sword 2011-08-11
  • 打赏
  • 举报
回复
GIS__ 2011-08-10
  • 打赏
  • 举报
回复
list直接可以转为ArrayCollection的。。
gfhtsvt 2011-08-10
  • 打赏
  • 举报
回复
个人比较懒 没看完你的代码 说白了flex前台传到java后台的代码中 ArrayCollection在java中就可以把其当成一个Object[]的数组接受 然后取这个数组的第一个元素嘛 怎么取你肯定知道卅 然后将取来的Object强制转换成HashMap<String,Object>类型不就OK啦 然后就取xx.get("Month")嘛 具体哪错了 还是要考自己多看 反复实验 纯属个人见解 勿喷
xb_smart 2011-08-09
  • 打赏
  • 举报
回复
arraycollection 对应于java是list是可以的,一般也是这么用,但是在arrayCollection里的每一个对象你可以写成一个flex类,然后映射到java 的相同名称的类名,相同属性,不过需要借助blaeds,有了它之后灰常方便映射 我在项目中基本都是这么做的。空的问题我怀疑可能就是你的arraycollection 每个都是对象
zhong_anjing 2011-08-05
  • 打赏
  • 举报
回复
使用array来代替arraycollect向java传递List.
参考
http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=serialize_data_2.html
landolee 2011-03-02
  • 打赏
  • 举报
回复
TesterQTY每值,会空指针啊
switch520 2010-04-25
  • 打赏
  • 举报
回复
从后台用XML形式
水中影子 2010-04-25
  • 打赏
  • 举报
回复
你debug看看是否有值?
j12655 2010-04-25
  • 打赏
  • 举报
回复
这个问题,应该是flex端的arraycollection类型能直接转换为list类型吗?
syeia 2010-03-19
  • 打赏
  • 举报
回复
其它对象有值吗?就这个日期没有值?

如果都没有值.

看看tmpMonthForecastArray 中有没有值?
如果能知道tmpMonthForecastArray 有值,就是你取的不对.
gundamff 2010-03-19
  • 打赏
  • 举报
回复
先测试你java方法返回正确不

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧