SpringMVC中ModelAndView用法小结

 更新时间:2023年12月10日 12:00:30   作者:ywb201314  
本文主要介绍了SpringMVC中ModelAndView用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

ModelAndView 作用

1.返回到指定的页面

ModelAndView构造方法可以指定返回的页面名称

例:return new ModelAndView(“redirect:/m07.jsp”);

通过setViewName()方法跳转到指定的页面

例:mav.setViewName(“hello”);

2.返回参数到指定页面的request作用于中

使用addObject()设置需要返回的值,addObject()有几个不同参数的方法,可以默认和指定返回对象的名字,参数会返回到新页面的request作用域中

ModelAndView 的3种用法

1.ModelAndView的第一种用法,先创建ModelAndView对象,再通过它的方法去设置数据与转发的视图名

  • setViewName(String viewName):‎设置此 ModelAndView 的视图名称, 由 DispatcherServlet 通过 ViewResolver 解析‎
  • addObject(String attributeName, Object attributeValue):通过key/value的方式绑定数据
package com.gxa.spmvc.controller;

import java.io.IOException;
import java.io.PrintWriter;

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

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.gxa.spmvc.entity.Student;

/**
 * SpringMVC的控制器(业务控制器)
 * 定义的方法就是一个请求处理的方法
 * @author caleb
 *
 */
@Controller
@RequestMapping("/user")
public class TestController {
    
    /**
     * 利用ModelAndView来转发数据,给前端视图
     * @return
     */
    @RequestMapping("/m06")
    public ModelAndView m06() {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("m06");
        modelAndView.addObject("message", "Hello World, Hello Kitty");
        return modelAndView;
    }
    
}

2.ModelAndView的第二种方法,可以直接通过带有参数的构造方法 ModelAndView(String viewName, String attributeName, Object attributeValue) 来返回数据与转发的视图名

package com.gxa.spmvc.controller;

import java.io.IOException;
import java.io.PrintWriter;

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

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.gxa.spmvc.entity.Student;

/**
 * SpringMVC的控制器(业务控制器)
 * 定义的方法就是一个请求处理的方法
 * @author caleb
 *
 */
@Controller
@RequestMapping("/user")
public class TestController {
    
    /**
     * 利用ModelAndView来转发数据,给前端视图
     * @return
     */
    @RequestMapping("/m07")
    public ModelAndView m07() {
        return new ModelAndView("m07", "message", "Hello World");
    }
    
}

3.ModelAndView的第三种用法,设置重定向

package com.gxa.spmvc.controller;

import java.io.IOException;
import java.io.PrintWriter;

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

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.gxa.spmvc.entity.Student;

/**
 * SpringMVC的控制器(业务控制器)
 * 定义的方法就是一个请求处理的方法
 * @author caleb
 *
 */
@Controller
@RequestMapping("/user")
public class TestController {
    
    /**
     * ModelAndView默认转发
     * ModelAndView还是可以设置重定向
     * 1. 重定向另一个控制器
     * 2. 重定向具体的jsp页面
     * @param name
     * @return
     */
    @RequestMapping("/{name}/m07")
    public ModelAndView m07(@PathVariable String name) {
        if (!"admin".equals(name)) {
            return new ModelAndView("redirect:/m07.jsp");
        }
        return new ModelAndView("m07");
    }
    
}

ModelAndView使用实例

要点:

1.@RequestMapping 注解的使用

2.modelandview 的使用

3.jsp页面request作用域的取值

4.视图解析器配置

ModelAndView 使用代码

package com.dgr.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@RequestMapping("mvc")
@Controller
public class TestRequestMMapping {
    
    @RequestMapping(value="/testModelAndView")
    public ModelAndView testModelAndView(){
        ModelAndView mav = new ModelAndView();
        mav.setViewName("hello");//跳转新的页面名称
        mav.addObject("address", "中国广东省广州市");//传入request作用域参数
        return mav;
    }
}

跳转前jsp页面链接设置

<a href="mvc/testModelAndView" rel="external nofollow" >Test ModelAndView</a>

跳转后jsp页面以及request作用于取值

<title>New Page</title>
</head>
<body>
    <h1>ModelAndView 跳转</h1>
    
    <br>
    
    ${requestScope.address}   
    
    <br>
    
    ${address }    

    <br>    
    
</body>

到此这篇关于SpringMVC中ModelAndView用法小结的文章就介绍到这了,更多相关SpringMVC ModelAndView内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深入探索Spring AOP从原理到实战操作

    深入探索Spring AOP从原理到实战操作

    本文详细介绍了SpringAOP的基本概念、实现机制、核心术语及实战应用,SpringAOP通过动态代理机制,在运行时为目标对象创建代理,实现对方法的增强,本文探讨了SpringAOP的高级特性,并列举了日志记录、事务管理、权限控制和性能监控等应用场景,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • Java如何获取@TableField,@TableName注解的值

    Java如何获取@TableField,@TableName注解的值

    这篇文章主要介绍了Java如何获取@TableField,@TableName注解的值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • mybatis连接mysql的实现过程

    mybatis连接mysql的实现过程

    通过配置Maven的pom文件,可以简化MyBatis连接数据库的过程,免去手动下载和导入各种依赖包的麻烦,本文介绍了如何利用Maven导入MyBatis及其他相关依赖,如Junit、MySQL连接驱动、Druid连接池和Dbutil等,以简化数据库操作和测试
    2024-10-10
  • 深入了解java中常见的五种比较方法

    深入了解java中常见的五种比较方法

    在程序的世界里面,比较也是必不可少的,通过比较可以确定对象的相对顺序、相等性以及其他比较条件,下面我们就来深入了解一下java中常见的五种比较方法吧
    2023-12-12
  • java事务的概念浅析

    java事务的概念浅析

    在本篇内容里小编给大家整理的是一篇关于java事务的概念浅析,有兴趣的朋友们可以参考学习下。
    2020-12-12
  • Java Spring的依赖注入理解及@Autowired用法示例详解

    Java Spring的依赖注入理解及@Autowired用法示例详解

    文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入Bean)与@Value(注入简单类型)的用途,并说明@Bean方法参数可自动装配依赖,无需显式注解,感兴趣的朋友跟随小编一起看看吧
    2025-07-07
  • mybatis plus实体类中字段映射mysql中的json格式方式

    mybatis plus实体类中字段映射mysql中的json格式方式

    这篇文章主要介绍了mybatis plus实体类中字段映射mysql中的json格式方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • SpringBoot 配合 SpringSecurity 实现自动登录功能的代码

    SpringBoot 配合 SpringSecurity 实现自动登录功能的代码

    这篇文章主要介绍了SpringBoot 配合 SpringSecurity 实现自动登录功能的代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Java观察者模式例子

    Java观察者模式例子

    这篇文章主要介绍了Java观察者模式例子的相关资料,需要的朋友可以参考下
    2015-12-12
  • MyBatis-Plus中更新操作的两种实现

    MyBatis-Plus中更新操作的两种实现

    本文主要介绍了MyBatis-Plus中更新操作的两种实现,主要是通过id更新和条件更新,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04

最新评论