flex中用httpService与后台交互,servlet向前台传递参数的问题

fangfang200805 2010-04-14 03:50:35
请教一个关于利用httpservice向后台java传递参数,servlet返回参数的问题:
是这样的:
我在前台接受一个xml的模式文件(xmlFormate:XML),和xml的数据文件(xmlData:XML),并赋值给全局变量:xmlFormate和xmlData, 两个都是通过servlet传递过到页面的 ,然后在定义表格时引用。

定义如下:

<…………………… creationComplete="init()">
<mx:Script>
<![CDATA[

[Bindable]
public var xmlchild:XMLList = new XMLList();
[Bindable]
public var xmlFormate:XML = new XML();
[Bindable]
public var xmlData:XML = new XML();
var arrayCollection:ArrayCollection = new ArrayCollection();

private function init() {

}

private function resultgridColumnContent(event:ResultEvent):void{// 表格的内容
xmlGridColumnContentResult = XML(event.result);
xmlData = xmlGridColumnContentResult;
}

private function resultXmlFileColumnHead(event:ResultEvent):void{//xml文件的表头
xmlFileColumnHeadResult = XML(event.result);
xmlFormate = xmlFileColumnHeadResult;
}

public function createXmlData():void { // 产生表格
Alert.show(xmlFormate);
Alert.show(xmlData);

adg.groupedColumns= arrayCollection.toArray();
adg. dataProvider= xmlData.children()

}

]]>
</mx:Script>



<mx:HTTPService id="gridColumnContent" useProxy="false" resultFormat="xml"
result="resultgridColumnContent(event)" method="GET"> <!-- 表格的内容-->
</mx:HTTPService>
<mx:HTTPService id="xmlFileColumnHead" useProxy="false" resultFormat="xml"
result="resultXmlFileColumnHead(event)"
method="GET"> <!--处理结果函数 表格的表头-->
</mx:HTTPService>

<mx:AdvancedDataGrid id="adg" creationComplete="createXmlData()" />





但是 ,问题是这样的:1 createXmlData中输出的两个xmlFormate和 xmlData 都为空 ,为什么呢,我明明赋值了啊?!
createXmlData()这个方法该怎么调用?
2 我将adg.groupedColumns= arrayCollection.toArray();
adg. dataProvider= xmlData.children() 放在init()函数用也是空,我该怎么写呢?


...全文
1041 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Da嗒_Sunny 2011-07-27
  • 打赏
  • 举报
回复
使用httpservice的时候 参数是要用Object给绑定的
如: 必须想创建一个Object对象
var obj:Object = new Object();
obj.parm = this.texInput.text;//这个parm是可以随便自定义的 也就是网obj中添加一个参数

servlet接收的时候直接用 request.getParameter("parm"); 即可
请你吃鸡蛋面 2011-07-27
  • 打赏
  • 举报
回复
URLRequest可以代替httpService
fangfang200805 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 huangxin5257 的回复:]
1>HTTPService在什么时候做的send();上面代码没体现出来
2<mx:AdvancedDataGrid id="adg" creationComplete="createXmlData()" />……
[/Quote]
1
贴代码时忘记贴出来了 在init()函数中有:
public function init():void{

gridColumnContent.url = "/SpreadSheet_v0.2/servlet/GetGridContent? md=gridContentdb&id="+ loginID; //xml文件表的内容
……………
gridColumnContent.send();
xmlDeepNumber.url="/SpreadSheet_v0.2/servlet/GetXmlDeepNum?id="+ loginID;
xmlDeepNumber.send();
}
2 你说在回调方法里面写一次adg. dataProvider= xmlData.children() ,可是我的xmlData也是通过后台传过来的 我如何知道后台已经把结果传过来并赋值给xmlData了呢?
AdvancedDataGrid 数据源也是通过HttpService从后台传递过来的,该如何绑定?
4 因为我的表格需要用到AdvancedDataGridColumnGroup,所以我定义了一个ArrayCollection,把根节点作为一个AdvancedDataGridColumnGroup(根节点下面的所有孩子节点加到这个Group中),然后加到这个Collection中,然后作为表头。

我还有一个问题: 我在这个mxml中定义了3个htttpService ,可是我都不知道他们的具体的执行顺序,请问用什么可以替代HttpService,比较适合我的需求
fangfang200805 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xuhuanchao 的回复:]
没有发送,send()
[/Quote]

贴代码时忘记贴出来了 在init()函数中有:
public function init():void{

gridColumnContent.url = "/SpreadSheet_v0.2/servlet/GetGridContent? md=gridContentdb&id="+ loginID; //xml文件表的内容

……………
gridColumnContent.send();
xmlDeepNumber.url="/SpreadSheet_v0.2/servlet/GetXmlDeepNum?id="+ loginID;
xmlDeepNumber.send();
}

我想问: 这个HttpService是在什么时候执行的?结果是什么时候返回的?
我定义了好几个HttpService的实例 该如何知道 执行的顺序?



水中影子 2010-04-14
  • 打赏
  • 举报
回复
没有发送,send()
huangxin5257 2010-04-14
  • 打赏
  • 举报
回复
1>HTTPService在什么时候做的send();上面代码没体现出来
2<mx:AdvancedDataGrid id="adg" creationComplete="createXmlData()" />
HTTPService执行查询,是异步的,估计回调函数也是在createXmlData之后执行的,要么在回调方法里面在写一次adg. dataProvider= xmlData.children() 或者把xmlData做成绑定对象与AdvancedDataGrid 数据源进行绑定
3>你说在前台接受一个xml的模式文件,后台不应该返回文件流,应该返回xml类型的字符串。
4>adg.groupedColumns= arrayCollection.toArray();没看明白什么意思。

4,328

社区成员

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

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