关于近些日子的一些问题小结

来源:互联网 发布:mac查看cad图纸的软件 编辑:程序博客网 时间:2024/05/04 11:55

1.关于Integer.valueOf(map.get().toString())这种代码的写法,其实是很不规范的,个人已经养成习惯了,很不好。

虽然有时候个人确定每一个层次的值不会为空,但是从严谨的角度考虑,最好分层来写,加上空值判断。---------批评来自项目组长


Object obj = map.get("XXX");

String str = obj.toString();

Integer i = Integer.valueOf(str);


2,情景说明:在便利集合的过程中,发现某一个元素符合某一个条件,想要把这个元素从该集合中删除,

对于这种问题,个人常犯的错误就是,直接在集合遍历的过程中进行判断,如果符合条件,直接就list.remove()掉了。


看似符合逻辑,实则不然。这种方式错在,在遍历该集合过程中,若把其中的元素删除掉,继续循环会报异常ConcurrentModificationException 

可以使用迭代器Iterator的remove方法移除当前对象,如果使用List的remove方法,则同样会出现ConcurrentModificationException  

相关参考引用链接:http://blog.csdn.net/dongzhouzhou/article/details/15378433

3,

巧用window.location.href = path_+"/governmentWorkstation/operation/stakeDistribution_2.action";

业务需求:首次加载页面,ajax请求后台实时数据,然后每个一定时间刷新请求。用户一旦在页面点击指定的时间查询,页面停止定时器,去后台取回指定参数日期的的数据返回到页面,页面一直显示指定日期的数据,不会再次定时刷新。


js代码:

<script type="text/javascript">//接受path,方便在js里面使用var path_ = "${path}";var heatmap_Data;var province = "${provinceName}";//根据不同个省份  创建地图var map = new AMap.Map("container", {resizeEnable: true,   center: [106.504962,29.533155],   zoom: 12 });//判断浏览区是否支持canvas    function isSupportCanvas() {        var elem = document.createElement('canvas');        return !!(elem.getContext && elem.getContext('2d'));    }if (!isSupportCanvas()) {  alert('热力图仅对支持canvas的浏览器适用,您所使用的浏览器不能使用热力图功能,请换个浏览器试试~');}//页面初次加载$(function(){ var st = '${startTime}';var et = '${endTime}';if(st.length != 0 && et.length != 0){  $("#start").val(st);  $("#end").val(et);  var result_data;  $.ajax({   url:path_+"/governmentWorkstation/operation/stakeDistribution_date.action",       //请求的url地址   dataType:"json",//返回格式为json   async:false,    //请求是否异步,默认为异步,这也是ajax重要特性   data:{time1:st,time2:et},   type:"post",   //请求方式   success:function(result){    result_data = result;   },   error:function(){   }});var heatmap2;    map.plugin(["AMap.Heatmap"], function() {        //初始化heatmap对象        heatmap2 = new AMap.Heatmap(map, {            radius: 30, //给定半径            opacity: [0, 0.8],             gradient:{         0.2: '#00FF00',             0.5: '#EEEE00',             0.8: '#C63300'                }        });        //设置数据集:数据格式为   [{"lng":116.191031,"lat":39.988585,"count":10},{"lng":116.389275,"lat":39.925818,"count":11}]        heatmap2.setDataSet({            data:result_data,            max: 100        });    });    }else{//首次加载本页面getData();}}); function getData(){$.ajax({   url:path_+"/governmentWorkstation/operation/stakeDistribution_ajax.action",       //请求的url地址   dataType:"json",//返回格式为json   async:false,    //请求是否异步,默认为异步,这也是ajax重要特性   type:"post",   //请求方式   success:function(result){heatmap_Data = result;   },   error:function(){   }});    map.plugin(["AMap.Heatmap"], function() {        //初始化heatmap对象        heatmap = new AMap.Heatmap(map, {            // visible 热力图是否显示,默认为true            // * opacity 热力图的透明度,分别对应heatmap.js的minOpacity和maxOpacity            //* radius 势力图的每个点的半径大小               // * gradient  {JSON} 热力图的渐变区间 . gradient如下所示            // * {            // .2:'rgb(0, 255, 255)',            // .5:'rgb(0, 110, 255)',            // .8:'rgb(100, 0, 255)'            // }            //其中 key 表示插值的位置, 0-1    value 为颜色值             radius: 30, //给定半径            opacity: [0, 0.8],             gradient:{                               0.2: '#00FF00',                0.5: '#EEEE00',                0.8: '#C63300'                              // 0.9: 'red'                                }        });    var heatmap;        //设置数据集:数据格式为   [{"lng":116.191031,"lat":39.988585,"count":10},{"lng":116.389275,"lat":39.925818,"count":11}]        heatmap.setDataSet({            data:heatmap_Data,            max: 100        });    });    //  定时器方法暂时暂停使用// setTimeout(function(){//   window.location.href = path_+"/governmentWorkstation/operation/stakeDistribution.action";//  }, 10000); //每间隔5秒取一次数据刷新实时热力分布图}  function getClick(){   var time1Val = $("#start").val();   var time2Val = $("#end").val();   window.location.href = path_+"/governmentWorkstation/operation/stakeDistribution_2.action?time1="+time1Val+"&time2="+time2Val;};</script>


java代码如下:

@RequestMapping(value = "stakeDistribution_ajax.action")public void stakeDistribution_ajax(@ModelAttribute UserInfo userInfo,HttpServletResponse response){// D_STATISTICS_STATIOND_CONNECTORID_STATUS//异步查询  实时  状态

List<Map<String,Object>> list = operationStatisticsService.getStakeDistribution();JSONArray jsonStr = JSONArray.fromObject(list);

//热力图要求key为小写字母,转换key为小写

SetEncodingMsgToJsp.outprint(jsonStr.toString().toLowerCase(), response);}

@RequestMapping(value = "stakeDistribution_date.action")public void stakeDistribution_date(@ModelAttribute UserInfo userInfo,String time1,String time2,HttpServletResponse response){// D_STATISTICS_STATIOND_CONNECTORID_STATUS// 查询指定日期的      充电桩使用分布密度数据

List<Map<String,Object>> list = operationStatisticsService.getStakeDistributionDate(time1,time2);

//热力图要求key为小写字母,转换key为小写

JSONArray jsonStr = JSONArray.fromObject(list);SetEncodingMsgToJsp.outprint(jsonStr.toString().toLowerCase(), response);}


原创粉丝点击