Spring MVC ModelMap.md

2017-06-20  本文已影响0人  wu_9f41

近来发现controller里有不同的处理返回数据的方式,其中包括ModelMap不明白是如何处理数据返回的,所以在此记录如下:
1.说到如何处理返回数据,要涉及到jsp的九大内置对象及其作用域
2.还要涉及到jquery的ajax请求方法

ModelMap是什么

ModelMap实现了Map接口,包含Map方法,addAttribute方法,addAttributes方法。在视图层可以通过reauest来找到ModelMap的数据。

ModelMap的使用

 @RequestMapping("/qryHHGoodsVolumeByTime")
      public void qryHHGoodsVolumeByTime(HttpServletRequest request, ModelMap map){
          logger.debug("MultimodalTransportController -- qryHHGoodsTypeByTime");
          String startDate = StringUtils.trimToEmpty(request.getParameter("startDate"));
          String endDate = StringUtils.trimToEmpty(request.getParameter("endDate"));
          map.addAttribute("HHVOLUME_DATA", multimodalTransportService.qryHHGoodsVolumeByTime(startDate, endDate));
          map.addAttribute("MONTHDATA_LIST", multimodalTransportService.qryMonthDataListByTime(startDate, endDate));
          map.addAttribute("SUCCESS", true);
      }

使用分析

因为ModelMap是存放在视图层的request里面的全局变量,容易造成异常,所以不建议使用这种方式。

替代方式

不再在void方法里面将数据塞到modelMap对象里面,而是直接新建返回一个Map对象。

@RequestMapping("/qryHHGoodsVolumeByTime")
    public Map<String,Object> qryHHGoodsVolumeByTime(HttpServletRequest request, ModelMap modelMap){
        logger.debug("MultimodalTransportController -- qryHHGoodsTypeByTime");
        String startDate = StringUtils.trimToEmpty(request.getParameter("startDate"));
        String endDate = StringUtils.trimToEmpty(request.getParameter("endDate"));
        Map<String,Object> map=new LinkedHashMap();
        map.addAttribute("HHVOLUME_DATA", multimodalTransportService.qryHHGoodsVolumeByTime(startDate, endDate));
        map.addAttribute("MONTHDATA_LIST", multimodalTransportService.qryMonthDataListByTime(startDate, endDate));
        map.addAttribute("SUCCESS", true);
        return map;
    }
上一篇 下一篇

猜你喜欢

热点阅读