当前位置: 首页 > news >正文

SpringMVC中Model和ModelAndView的区别

SpringMVC中Model和ModelAndView的区别

两者的区别:

在SpringMVC中,Model和ModelAndView都是用于将数据传递到视图层的对象

Model是”模型“的意思,是MVC架构中的”M“部分,是用来传输数据的。

理解成MVC架构中的”M“和”V“,其中包含”Model“和”View“两部分,主要功能是:设置转向地址,将底层获取的数据进行存储(或者封装),最后将数据传递给View。

Model只是用来传输数据的,并不会进行业务的寻址。ModelAndView 却是可以进行业务寻址的,就是设置对应的要请求的静态文件,这里的静态文件指的是类似JSP的文件。

Model是每次请求中都存在的默认参数,利用其addAttribute()方法即可将服务器的值传递到JSP页面中。

ModelAndView包含Model和View两部分,使用时需要自己实例化,利用ModelMap用来传值,也可以设置View的名称。

其次,两者还有一个最大的区别,每次发起请求后Spring MVC会自动创建Model对象,而ModelAndView需要我们自己创建

总结:

虽然Model和ModelAndView都可以用于将数据传递到视图层,但ModelAndView更加强大,因为它不仅可以传递数据,还可以指定要呈现的视图。如果你只需要传递数据而不关心视图,则可以使用Model。但如果你需要同时传递数据和指定视图,则应该使用ModelAndView。

Model在Controller层的写法

@Controller  //代表这个类会被Spring接管,被这个注解的类中所有方法,如果返回值是String,并且有具体的页面可以跳转,那么就会被视图解析器解析
public class IndexController {@RequestMapping("/demo")   //意为请求 localhost:8080/demopublic String demo(Model model){//封装数据(向模型中添加数据,可以jsp页面直接取出并渲染)model.addAttribute("Content","Hello");//会被视图解析器处理return "Hello";   //返回到哪个页面     }
}

model方法是可以返回一个对象的。model.addAttribute(String s,Object o),返回对象要创建一个实体对象生成getter和Setter,还有同String()方法

ModelAndView在Controller层的写法

@Controller
@RequestMapping
public class IndexController {@RequestMapping("/demo2")public ModelAndView demo2(){ModelAndView modelAndView = new ModelAndView();//返回到那个前端文件modelAndView.setViewName("hello");  modelAndView.addObject("ContentOne","HelloOne");modelAndView.addObject("ContentTwo","HelloTwo");System.out.println(modelAndView);return modelAndView;}
}
http://www.lryc.cn/news/106544.html

相关文章:

  • Tomcat安装与管理
  • React之路由
  • 机器学习深度学习——非NVIDIA显卡怎么做深度学习(坑点排查)
  • 2021 Robocom 决赛 第四题
  • 线程池-手写线程池Linux C简单版本(生产者-消费者模型)
  • 05-向量的意义_n维欧式空间
  • 交通运输安全大数据分析解决方案
  • vimrc 配置 (持续跟新中)
  • 【集成学习介绍】
  • 动画制作选择Blender还是Maya
  • 215. 数组中的第K个最大元素
  • NLP From Scratch: 生成名称与字符级RNN
  • Spring MVC程序开发
  • 医疗知识图谱问答——文本分类解析
  • JS关于多张图片上传显示报错不影响后面图片上传方法
  • MySQL踩坑之sql_mode的用法
  • 消息队列总结(4)- RabbitMQ Kafka RocketMQ高性能方案
  • websocket服务端大报文发送连接自动断开分析
  • 想写几个上位机,是选择学c#还是 c++ qt呢?
  • JavaScript 简单实现观察者模式和发布-订阅模式
  • java集成短信服务 测试版 qq邮箱简单思路
  • #P0994. [NOIP2004普及组] 花生采摘
  • Elasticsearch和Kibana的安装及验证
  • 细讲TCP三次握手四次挥手(一)
  • 【linux-zabbix】zabbix-agent启动报错:Daemon never wrote its PID file. Failing.
  • 【微信小程序】初始化 wxCharts,调用updateData动态更新数据
  • 【C语言初阶(19)】实用的 VS 调试技巧
  • 虚拟机之间配置免密登录
  • 【contenteditable属性将元素改为可编辑状态】
  • Android 第三方库CalendarView