SpringMVC中Model和ModelAndView的区别

news/2024/11/19 20:15:25/

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.ppmy.cn/news/999982.html

相关文章

乱码相关知识点

在Java中,乱码是指将字符以错误的形式显示或处理,导致文本内容无法正确识别或显示的情况。乱码问题通常涉及字符编码和字符集的处理。 以下是关于乱码的一些重要知识点: 字符编码(Character Encoding): 字…

最小覆盖子串(JS)

最小覆盖子串 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量…

【js】FormData方法介绍和使用:

文章目录 一、接口使用FormData提交数据:二、FormData概述:三、FormData案例: 一、接口使用FormData提交数据: 二、FormData概述: 三、FormData案例: let formData new FormData() for (const key in tha…

TypeScript算法基础——TS字符串的常用操作总结:substring、indexOf、slice、replace. . .

在TypeScript中,字符串的常用操作可以使用以下方法来实现: 常用 substring(startIndex: number, endIndex?: number): string:返回从startIndex开始到endIndex(不包括)之间的子字符串。如果省略endIndex&#xff0c…

【树形DP+换根思想】2022牛客多校加赛 H

登录—专业IT笔试面试备考平台_牛客网 题意: 思路: 这个虽然是树形DP,却用了换根的思想.... 首先,后缀0的个数可以转化成min(cnt2,cnt5),其中cnt2为2的因子个数,cnt5为5的因子个数 然后进行DP 设dp[u]…

宋浩概率论笔记(二)随机变量

本章节内容较多,是概率论与数理统计中最为重要的章节,对于概率密度和分布函数的理解与计算要牢牢掌握,才能在后期的学习中更得心应手。

怎么才能提升自己工作能力?

表现最好的员工通常是获得加薪和工作晋升的人。您可以采取某些措施来提高您的工作绩效,并帮助您的主管将您视为他们最好的员工之一。在本文中,我们列出了 12 个技巧,可以立即提高您的工作绩效。 什么是工作绩效? 工作绩效是指您…

雷达信号处理技术汇总

系列文章目录 《雷达简单介绍》 《信号类型(雷达)——雷达波形认识(一)》 《信号类型(雷达)——连续波雷达(二)》 《信号类型(雷达)——脉冲雷达&#xf…