2021-10-16

本文介绍了SpringMvc中用于数据传递的ModelAndView、Model和ModelMap的区别。ModelAndView通常用于返回视图并添加数据,Model是处理数据的主要对象,返回值为String类型,而ModelMap与Model用法相似,但更少使用。在实际开发中,Model因其简洁和常用性而被广泛采用。
摘要由CSDN通过智能技术生成

**

关于SpringMvc中的ModelAndView 、Model、ModelMap的区别

**
不说废话直接上正文!
一般而言,在处理视图解析器获得前端数据处理业务时候,会用到以上这三个对象,观察源码发现第一个ModelMap继承了LinkedMap,丰富了其功能拓展,用的不多。 这些对象主要用于传递控制方法处理数据到结果页面
1.ModelAndView
通常用在实现Controller接口时候,直接创建该对象,返回值也是ModelAndView对象这是与精简版的区别。

package cn.hdu.controller;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//只要实现了controller接口的类说明就是一个控制器了
public class ControllerTest01 implements Controller {
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        ModelAndView modelAndView = new ModelAndView();

        //mv做两件事  添加数据  跳转页面   简化版model
        modelAndView.addObject("msg","大傻逼黄秀云");
        modelAndView.setViewName("admin/test");
        return modelAndView;
    }
}

2.Model
该对象用的最多,可用来传参数、传对象,返回值是String类型

public class ControllerTest03 {
    @RequestMapping("/t1")  //设置请求的接口  写死
    public String test1(Model model){
        model.addAttribute("msg","controllerTest3");
        return "admin/test";
    }

3.ModelMap
用的较少,l和Model用法相同。注意Map对象是MvC内部自己创建的

package cn.hdu.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("map")
public class ModelMapTest {
    @GetMapping("t5")
    public String test01(ModelMap modelMap){
        modelMap.addAttribute("msg","黄秀云是大傻逼吗?");
        return "admin/test";
    }
}

hhhh哈哈哈

**

总结:

在这里插入图片描述

**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值