ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Model ModelMap ModelView三者的区别你造吗

2020-04-08 13:00:21  阅读:273  来源: 互联网

标签:你造 ModelView ModelMap 跳转 ModelAndView Model 数据 页面


对于MVC框架,控制器controller执行业务逻辑 用于产生模型数据Model 视图view用来渲染模型数据。

一:Model和ModelAndView这两个类在spring的视图解析时作用及区别
       1、Model是用来传输数据的,不会进行业务的寻址
       2、ModelAndView可以进行业务寻址(就是设置对应的要请求的静态文件,静态文件类似于jsp文件)

       最大的区别:Model每一次请求可以自动创建,ModelAndView是需要我们自己去new的

二.Model方法

       如果在控制层上的方法声明了注解@ResponseBody,则会直接将返回值输出到页面,Model是一个接口,实现类为ExtendModelMap,继承了ModelMap类。

          public class ExtendModelMap extends ModelMap implements Model

  model可以用来 接收 各种类型的数据,如果用来接收一组数据list,那么这个时候的model实际上是ModelMap

三.ModelMap

  ModelMap对象主要用于 传递 控制方法处理数据到结果页面(也就是把结果页面上需要的数据放到ModelMap对象中就可以了)
  作用类似于request对象的setAttribute方法的作用:在一个请求过程中传递处理的数据
  ModelMap本身不能设置页面跳转的URL地址名或者物理跳转地址,此时可以通过控制器方法的字符串返回值来设置跳转URL地址别名或者物理跳转地址

四.ModelView
  (1)设置转向地址,这也是ModelAndView和ModelMap的主要区别.设置方式如下所示:
            ModelAndView view = new ModelAndView("path:student");
      或者通过setViewName方式:
            public void setViewName(String viewName){...}

  (2)将控制器方法中处理的结果数据传递到结果页面(也就是把在结果页面上需要的数据放到ModelAndView对象中即可)  
      其作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以下方法向页面传递参数:
          public ModelAndView addObject(String attributeName, Object attributeValue){...}
          public ModelAndView addObject(Object attributeValue){...}
    在jsp中:也是可以通过el表达式语言attributeName或者C标签库的{name } 来获取并展示ModelAndView中的数据。
    ModelAndView的实例是需要我们手动new的,这也是和ModelMap的一个区别。
    而且,ModelAndView 可以自己寻址,只需要return 返回其对象即可。
记住有ModelView需要返回对象,ModelMap需要返回的是地址路径

标签:你造,ModelView,ModelMap,跳转,ModelAndView,Model,数据,页面
来源: https://www.cnblogs.com/HYV587/p/12659227.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有