处理响应数据

SpringMVC 输出模型数据概述
提供了以下几种途径输出模型数据
  1) ModelAndView: 处理方法返回值类型为 ModelAndView 时, 方法体即可通过该对象添加模型数据
  2) Map 或 Model: 入参为 org.springframework.ui.Model、org.springframework.ui.ModelMap 或 java.uti.Map 时,处理方法返回时,Map 中的数据会自动添加到模型中。
 
处理模型数据之 ModelAndView
1、 ModelAndView介绍
   控制器处理方法的返回值如果为 ModelAndView, 则其既包含视图信息,也包含模型数据信息。
  1) 两个重要的成员变量:
    private Object view;      视图信息
    private ModelMap model; 模型数据
  2)添加模型数据:
    MoelAndView addObject(String attributeName, Object attributeValue)   设置模型数据
    ModelAndView addAllObject(Map<String, ?> modelMap)
  3)设置视图:
    void setView(View view)                设置视图对象
    void setViewName(String viewName)     设置视图名字
  4)获取模型数据
        protected Map<String, Object> getModelInternal()   获取模型数据
        public ModelMap getModelMap()
        public Map<String, Object> getModel()
/*
     * springMVC处理请求过程中,往作用域中放值有以下三种方式
     * 总结:根据ModelAndView源码调试,不管使用以下那种方式,最终都会把model数据和view数据封装到一个ModelAndView中
     */
    
    @RequestMapping(value="/param", method=RequestMethod.POST)
    public ModelAndView param() {
        ModelAndView mav = new ModelAndView();
        mav.addObject("username", "root");//往request作用域中放值
        mav.setViewName("success");//设置视图名称,实现页面跳转
        return mav;
    }
    
    @RequestMapping(value="/param", method=RequestMethod.POST)
    public String param(Map<String, Object> map) {
        map.put("username", "admin");//向作用域中放值
        return "success";//返回视图名称
    }
    
    @RequestMapping(value="/param", method=RequestMethod.POST)
    public String param(Model model) {
        model.addAttribute("username", "张三");//向作用域中放值
        return "success";//返回视图名称
    }
原文地址:https://www.cnblogs.com/lemonzhang/p/12929835.html