SpringMVC 输出模型数据概述
提供了以下几种途径输出模型数据:
- ModelAndView: 处理方法返回值类型为 ModelAndView 时, 方法体即可通过该对象添加模型数据
- Map 及 Model: 入参为 org.springframework.ui.Model、 org.springframework.ui.ModelMap 或 java.uti.Map 时,处理方法返回时,Map 中的数据会自动添加到模型中。
- @SessionAttributes: 将模型中的某个属性暂存到 HttpSession 中,以便多个请求之间可以共享这个属性
- @ModelAttribute: 方法入参标注该注解后, 入参的对象就会放到数据模型中
- BindingAwareModelMap
处理模型数据之 ModelAndView
- ①控制器处理方法的返回值如果为 ModelAndView, 则其既包含视图信息,也包含模型数据信息。
- ②添加模型数据: MoelAndView addObject(String attributeName, Object attributeValue) ModelAndView addAllObject(Map<String, ?> modelMap)
- ③设置视图: void setView(View view) void setViewName(String viewName)
**
* 目标方法的返回类型可以是ModelAndView类型
* 其中包含视图信息和模型数据信息
*/
@RequestMapping("/testModelAndView")
public ModelAndView testModelAndView(){
System.out.println("testModelAndView");
String viewName = "success";
ModelAndView mv = new ModelAndView(viewName );
mv.addObject("time",new Date().toString()); //实质上存放到request域中
return mv;
}
- SpringMVC提供了一种可以临时给Session域中保存数据的方式;使用一个注解@sessionAttributes(只能标在类上) @sessionAttributes (value="msg") 给BindingAwareModelMap中保存的数据或者ModelAndView中的数据,同时给session中放一份;value指定保存数据时要给session中放的数据的key
@sessionAttributes (value="msg") @SessionAttributes (value={"msg","msg2"}) //保存值同时放在sesson中 @Controller public class demo(){}
- 给放 session 用原生api
@ModelAttribute注解
- 在方法定义上使用 @ModelAttribute 注解:Spring MVC 在调用目标处理方法前,会先逐个调用在方法级上标注了 @ModelAttribute 的方法。
- 在方法的入参前使用 @ModelAttribute 注解:可以从隐含对象中获取隐含的模型数据中获取对象,再将请求参数绑定到对象中,再传入入参
- 将方法入参对象添加到模型中
- ModelAttributeMap
标签:SpringMvc,方法,模型,响应,ModelAttribute,注解,传出,ModelAndView,数据
From: https://blog.51cto.com/u_15993308/6204098