怎么使用Model、ModelMap和ModelAndView

SpringMVC中,调用方法前会先创建一个隐含的数据模型,作为模型数据的存储容器.

也就是说在每次的前后端请求时,会携带一个背包,不管你有没有用到,这个背包是存在的,用来存放我们交互的数据的值

有个 @ModelAttribute 注解,意思是在 请求 方法 调用之前 ,会 优先 执行被这个注解修饰的方法

在前端向后端请求时,Spring 就会自动创建好 Model 和 ModelMap 实例,我们只需要使用即可.

怎么使用Model、ModelMap和ModelAndView

Model

一、理解

Model 是一个接口, public class ExtendedModelMap extends ModelMap implements Model ,通过 .attribue() 添加数据进背包,存储的数据域范围是 requestScope

通过 Controller 来返回目标页面.

二、代码

@RequestMapping(value = "/index")
    public String index1(Model model) {
        model.addAttribute("result", "后台返回index1");
        return "result";
}

ModelMap

一、理解

通过 .attribue() 添加数据进背包,作用和 requestsetAttribute 类似,用来传递请求处理的数据,作用域范围 requestScope

通过 Controller 来返回目标页面.

二、代码

public String xxxxmethod(String someparam,ModelMap model)
{
     //省略方法处理逻辑若干
     //将数据放置到 ModelMap 对象 model 中,第二个参数可以是任何java类型
      model.addAttribute("key",someparam);
         ......
     //返回跳转地址
      return "success";
}

ModelAndView

一、理解

Model 和 ModelMap 的结合体,有多种重载的构造方法,可以在 构造方法中传入参数指定跳转到的目标页面 ,也可以通过 ModelAndView 实例对象的方法指定,最后返回 实例对象 即可

二、代码

@RequestMapping("/index")
    public ModelAndView testModelAndView(){
        //创建一个模型视图对象
        ModelAndView mav = new ModelAndView();
        // ......    
        // //将数据放置到 ModelAndView 对象 view 中,第二个参数可以是任何 java 类型
        mav.addObject("cs", cs);
        // 放入 jsp / html 路径
        mav.setViewName("lankeren");
         //返回 ModelAndView 对象 mav
        return mav;
    }

原文 

https://segmentfault.com/a/1190000021098868

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 怎么使用Model、ModelMap和ModelAndView

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址