zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    Intellij IDEA 使用jrebel运行spring-boot并实现自动编译进行热部署
    eclipse常见问题解决方案
    Spring Boot 打包部署
    解决oracle数据库 ora-00054:resource busy and acquire with NOWAIT specified 错误
    java RSA加密解密实现(含分段加密)
    Spring bean作用域
    博客目录
    分析SQL执行效率(一)
    索引操作
    表的基本操作
  • 原文地址:https://www.cnblogs.com/yehshuai/p/3664515.html
Copyright © 2011-2022 走看看