springMVC中的Model、ModelMap、ModelAndView

Model、ModelMap两者几乎没有任何区别

ModelMap(model)、ModelAndView这两者的区别:有一个需要返回对象,一个需要返回的是地址路径。

@RequestMapping(value="/findAll")
public ModelAndView findAll() throws Exception {
  ModelAndView mv = new ModelAndView();
  // ......
  return mv;
}
@RequestMapping(path="/save")
public String save(Model model) {
  // ......
  return "success";
}

  ModelAndView 大概相当于 ModelMap(model) + 地址路径

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

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

有个 @ModelAttribute 注解,意思是在请求方法调用之前,会优先执行被这个注解修饰的方法,就可以在请求调用之前往数据模型中存入一些数据

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

Model:

  Model 是一个接口,public class ExtendedModelMap extends ModelMap implements Model

  通过 .attribue() 添加数据进背包,存储的数据域范围是 requestScope

ModelMap:

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

  Model 和 ModelMap 的结合体,有多种重载的构造方法,可以在构造方法中传入参数指定跳转到的目标页面,

  也可以通过 ModelAndView 实例对象的方法指定,最后返回实例对象即可

原文地址:https://www.cnblogs.com/roadlandscape/p/12315431.html

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

springMVC中的Model、ModelMap、ModelAndView的相关文章

Model & ModelMap & ModelAndView 比较ModelFactory简介

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

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

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

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

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

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 中model中放入枚举类型

我们直接看例子: Map<String, String> mallMap = new HashMap<String, String>(); mallMap.put(MallStatus.SELFMALL.toString(), MallStatus.SELFMALL.getValue()); mallMap.put(MallStatus.DELEGATIONMALL.toString(), MallStatus.DELEGATIONMALL.getValue()); mallMap

SpringMVC笔记(八)SpringMVC中的参数传递

接收请求参数 一.使用HttpServletRequest @RequestMapping("/login") public String login(HttpServletRequest request){ String name = request.getParameter("name"); String pwd = request.getParameter("pwd"); return "success"; } 二.参数

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

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

SpringMVC中使用Interceptor拦截器

SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判断当前时间是否是购票时间. 一.定义Interceptor实现类 SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的.在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方式是要定义的Intercep