java Web与Flex通过HTTP service 通信 并解析Map 数据。

上篇通过Flex remoting 通信,进入调用方法后,发现并没有获取到Spring 注入的bean对象。bean 为 null

so...修改为 HTTPService 的方式。

废话不多说,

1.Flex 通过 HTTPService 请求服务器 代码如下

public function getFlexDupont(companyA:String,companyB:String,data:String):void{
var service:HTTPService = new HTTPService();
service.method="POST";
service.contentType="application/xml";            
service.resultFormat=HTTPService.RESULT_FORMAT_OBJECT; service.url = encodeURI(
encodeURI("http://localhost:8081/项目名称/chart/chart.do?method=getDupont&companyA="+companyA+"&companyB="+companyB+"&data="+data)); //resultDupont 返回方法。 service.addEventListener(ResultEvent.RESULT, resultDupont); service.send();

 

2.服务器后台方法。

public void getDupont(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)throws Exception{
        JSONObject jsonObj = new JSONObject();
        response.setContentType("text/html;charset=UTF-8"); 
//处理省略
response.setCharacterEncoding("UTF-8");
//response.getWriter().print(map);
//上方map 因为我这边传给flex的时候有空格,so 自己传输了个大字符串过去
response.getWriter().print(map.toString().substring(1, map.toString().length()-1));

 

3.Flex解析代码

//发过来数据结构  Acompany=123,Bcompany=345,......
import
mx.utils.StringUtil; [Bindable] private var acompany:String; public function resultDupont(event:ResultEvent):void{ var str:String=event.result.toString(); var arrNum:Array = new Array(); arrNum = str.split(","); for(var i:int=0;i<arrNum.length;i++){ var arryNum:Array = new Array(); arryNum = arrNum[i].toString().split("="); if(StringUtil.trim(arryNum[0].toString()) == "Acompany"){ acompany = arryNum[1].toString(); }    }
}

 

说明:因为lz这么穿过来的Map的key中有空格,当时赶进度,也没去查为啥转过来会有空格了。

so..自己写了个解析 图方便。

Flex中解析Map 有此两种方式

//第一种 Acompany 为key,这里通过key直接获取到值
event.result["Acompany"].toString();

//第二种 这里通过obj.key ,key为java中的key的值。
var obj:Object=event.result.toString();
obj.Acompany.toString();

 

转载于:https://www.cnblogs.com/yehshuai/p/3664515.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值