Model、ModelMap、ModelAndView的使用和区别

1、Model的使用

  数据传递:Model是通过addAttribute方法向页面传递数据的;

  数据获取:JSP页面可以通过el表达式或C标签库的方法获取数据;

  return:return返回的是指定的页面路径;

 1     /**
 2      * Model是每一次请求可以自动创建
 3      * @param model
 4      * @return
 5      */
 6     @RequestMapping("/test01")
 7     public String test01(Model model){
 8         model.addAttribute("param_id", "01");
 9         model.addAttribute("param_name", "spring-mvc");
10         return "test";
11     }        

2、ModelMap的使用

  ModelMap的使用与Model相同,ModelMap是一种特殊的Model,一般来说,Model可以接收各种类型的数据,如果接收的数据是List,那么这个时候Model实际上是ModelMap。

3、ModelAndView的使用

  数据传递:ModelAndView通过addObject方法向页面传递数据;

  数据获取:JSP页面可以通过el表达式或C标签库的方法获取数据(与Model的获取方式相同);

  return:return返回的是ModelAndView对象;

  ModelAndView设置跳转地址有两个方式:

  第一种:在new ModelAndView时添加地址参数,如:

      ModelAndView mav = new ModelAndView("test");

  第二种:使用ModelAndView的setViewname(String)方法去设置,如:

      mav.setViewName("test");
 1   /**
 2      * ModelAndView需要我们自己创建
 3      * 可以指定跳转地址
 4      * @param model
 5      * @return
 6      */
 7     @RequestMapping("/test02")
 8     public ModelAndView test02(){
 9         //第一种方法:在创建ModelAndView对象时,指定跳转地址
10         ModelAndView mav = new ModelAndView("test");
11         //第二种方法:用方法setViewName,指定跳转地址
12 //        mav.setViewName("test");
13         mav.addObject("param_id", "02");
14         mav.addObject("param_name", "ModelAndView");
15         return mav;
16     }

4、Model与ModelAndView的区别

  第一点:Model只是用来传输数据的,并不会进行业务的寻址。ModelAndView 却是可以进行业务寻址的;所以Model的返回值是url地址,而ModelAndView的返回值是ModelAndView对象;

  第二点:Model是每一次请求可以自动创建,但是ModelAndView 是需要我们自己去new的。所以使用Model时Controller的参数是Model。

原文地址:https://www.cnblogs.com/xueqx/p/10886316.html

时间: 2024-08-01 17:08:28

Model、ModelMap、ModelAndView的使用和区别的相关文章

Model & ModelMap & ModelAndView 比较ModelFactory简介

Model: 是一个接口,其实现类必继承ModelMap. ModelMap: 继承与LinkedHashMap,相当于自定义了一个map. ModelAndView: 里面封装了两个对象,其中view对应页面,model里面存相关页面渲染需要的数据. private Object view;private ModelMap model;

Model、ModelMap、ModelAndView的作用及区别

Model.ModelMap.ModelAndView的作用及区别 对于MVC框架,控制器controller执行业务逻辑 用于产生模型数据Model 视图view用来渲染模型数据 Model和ModelAndView这两个类在spring的视图解析时作用及区别 1.Model是用来传输数据的,不会进行业务的寻址 2.ModelAndView可以进行业务寻址(就是设置对应的要请求的静态文件,静态文件类似于jsp文件) 最大的区别:Model每一次请求可以自动创建,ModelAndView是需要我

SpringMVC学习 -- ModelAndView , Model , ModelMap , Map 及 @SessionAttributes 的使用

输出模型数据: ModelAndView:处理方法返回值类型为 ModelAndView 时 , 其中包含视图和模型信息.方法体即可通过该对象添加模型数据 , 即 SpringMVC 会把 ModelAndView 中的 model 模型放入到 request 域对象中. Map, Model, ModelMap:目标方法的入参中包含 Map, Model, ModelMap 类型的数据, 返回值是 String 类型,Spring MVC 会自动把 Map, Model, ModelMap转化

Spring MVC 常用注解@Controller,@RequestMapping,Model和ModelAndView

[email protected] 用于指示Spring类的实例是一个控制器.Controller接口的实现类只能处理一个单一请求动作,而@Controller注解的控制器可以支持同时处理多个请求动作,更加灵活.Spring使用扫描机制查找应用程序中所有基于注解的控制器类.分发处理器会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping注解,而使用@RequestMapping注解的方法才是真正处理请求的处理器.为了保证能找到控制器,需要完成两件事情: 在Spring

spring学习之springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序

spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void.下面将对具体的一一进行说明:ModelAndView Java代码 @RequestMapping("/show1") publicModelAndView show1(HttpServletRequest request, HttpServletResponse response) throwsException { ModelA

springMVC数据模型model,modelmap,map,@ModelAttribute的相互关系

结论: a.注解方法中形参为model,modelmap,map一个或几个时,他们指向的引用对象相同即他们的值相同. b.当使用@ModelAttribute注解请求参数时,springmvc自动将该参数放入model,modelmap,map中. c.model,modelmap,map中put,request.setattribute(),b中@ModelAttribute以及modelandveiw.addObj()效果相同,return时都是将参数放request的attribute中.

springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序

springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序 http://www.360doc.com/content/14/0309/19/834950_359080244.shtml

开发中model,entity和pojo的区别

一.Bean 对于Bean而言,我的理解是只要是Java的类的就可以称为一个Bean,更用在Spring上,被Spring管理的对象就可以将其称作为Bean. 它不仅仅可以包括对象的属性以及get,set方法,还可以有具体的业务逻辑. 二.Entity 这个最容易理解,其特点是:数据表对应到实体类的映射 三.Model Model是MVC中一个概念,可能不和Entity一一对应,因为展示在View层中数据可能是一个Entity的精简,也可能是多个Entity的组合.一句话概括:Model是一个高

ModelAndView 和 Model ModelMap 返回值区别

当直接跳转到jsp页面(或forward)时,三个对象功能一样. ModelAndView mav = new ModelAndView();mav.addObject("msg","hello world!");12model 和modelMap一样,看源码可知:modelMap是model的实现类. model.addAttribute("msg", "hello world!");1但是重定向他们有区别: ModelAn