关于springMVC与ajax其间不同数据格式的交互

关于springMVC与ajax之间不同数据格式的交互

          近段时间做项目,碰到springMVC与ajax之间不同数据格式的交互问题。特此记录下来。希望对小伙伴们有帮助。

 

1.json格式

           当我们前台页面需要后台为其传递json数据,以往struts框架时通常会借助jackson插件。现在利用SpringMVC则通过方法名称上加@responseBoby,方法的返回值类型设为Map<String, Object>(注:此类型是当我们需要得到的是个集合类型时可以使用)。

          例如:

    /**
     * 获取所有的信息
     *
     * @return
     */
    @RequestMapping(value = "/getMAll")
    @ResponseBody
    public Map<String, Object> getMAll() {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("result", "success");
        List<M> list = new ArrayList<M>();
        list = MService.getMAll();
        map.put("data", list);
        return map;
    }

    注:前台ajax方法中dataType设为json即可。如果报错请注意检查你后台所传递的数据组成的格式,是否是正确json格式

   

2.html(.jsp)文件格式

     后台:

    @RequestMapping(value = "/getM")
    @ResponseBody
    public ModelAndView getM(@Valid @RequestParam("MName") String MName, BindingResult br) {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("result", "success");
        map.put("data", MService.getMByMName(MName));
        ModelAndView mav = new ModelAndView();
        mav.setViewName("/system/M/index-edit");
        mav.addObject("M", map);
        return mav;
    }
  前台:ajax的datatype设置为 html即可