SpringMVC 输出模型数据概述
提供了以下几种途径输出模型数据
1) ModelAndView: 处理方法返回值类型为 ModelAndView 时, 方法体即可通过该对象添加模型数据
2) Map 或 Model: 入参为 org.springframework.ui.Model、org.springframework.ui.ModelMap 或 java.uti.Map 时,处理方法返回时,Map 中的数据会自动添加到模型中。
提供了以下几种途径输出模型数据
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) 设置视图名字
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()
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";//返回视图名称 }