SpringMVC的Model、Model Map、ModelAndView

一直都在用Model设置属性用于前后端传值。

今天在使用@RestController时,使用了ModelAndView传值并返回试图。

1.Model

  1. model一般用于前后端传值。
  2. model不能用于返回试图和跳转地址
  3. model实例由springmvc框架创建并作为控制器参数传入,不用自己创建

2.ModelMap

  1. 看起来和Model没有什么不同

3.ModelAndView

  1. ModelAndView既可以传递属性,也可以返回试图
  2. ModelAndView需要自己new。
//一种直接new,然后setViewName设置返回试图
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("index");
modelAndView.addObject("user",user);
return modelAndView;
复制代码
//另一种直接在构造函数内设置返回试图
ModelAndView mav = new ModelAndView("index");
mav.addObject("user",user);
return mav;
复制代码

注意:setViewName要设置成返回试图的名称,有时候"index"写成"/index",会发生错误。

例如:EL1008E: Property or Field 'timestamp' cannot be found on object of type 'java.util.HashMap' - maybe not public?


参考

SpringMVC Model、ModelMap和ModelAndView的区别和用法 Model、ModelMap和ModelAndView的使用详解

转载于:https://juejin.im/post/5cf36db46fb9a07eec59b2c3

猜你喜欢

转载自blog.csdn.net/weixin_33697898/article/details/91438320