SpringMVC编程实践:ModelAndView的使用方法

简介: 总的来说,在Spring MVC应用程序中使用ModelAndView是一种非常方便的方式来处理模型数据和视图信息。它提供了一种简洁、灵活且强大的方式来处理Web请求。

Spring MVC是一个基于Java的实现了Model-View-Controller设计模式的请求驱动类型的轻量级Web框架。在Spring MVC中,ModelAndView是一个非常重要的组件,它封装了模型数据和视图信息。

首先,我们来看一下ModelAndView类。这个类有几个重要方法:

  1. setViewName(String viewName): 设置视图名称。
  2. setView(View view): 设置视图对象。
  3. addObject(String attributeName, Object attributeValue): 添加模型数据。
  4. getModel(): 获取所有模型数据。

在控制器方法中,我们可以创建并返回一个 ModelAndView对象。例如:

@RequestMapping("/hello")
public ModelAndView hello() {
    ModelAndView mav = new ModelAndView();
    mav.setViewName("hello");
    mav.addObject("message", "Hello, Spring MVC!");
    return mav;
}
​

在这个例子中,“hello”是视图名称,“message”和“Hello, Spring MVC!”分别是属性名和属性值。

当控制器方法返回 ModelAndView对象时,Spring会将其包含的所有属性添加到请求范围内,并将其转发到指定名称对应的视图上。
如果你使用JSP作为你应用程序的试图技术,并且你已经配置了JSP解析器(例如InternalResourceViewResolver),那么上述代码会转发请求到“/WEB-INF/views/hello.jsp”。

然后,在JSP页面中可以使用EL表达式访问这些属性:

<p>${message}</p>
​

这将显示“Hello, Spring MVC!”。

除了在控制器方法中创建和返回 ModelAndView对象,你还可以将其作为方法参数。例如:

@RequestMapping("/hello")
public String hello(ModelAndView mav) {
    mav.setViewName("hello");
    mav.addObject("message", "Hello, Spring MVC!");
    return "redirect:/";
}
​

在这个例子中,Spring会自动实例化一个 ModelAndView对象并传递给控制器方法。你可以设置视图名称和添加模型数据,然后返回一个字符串表示视图名称。

注意,在上述代码中我们使用了"redirect:/"来重定向到另一个URL。当我们使用重定向时,Spring会把模型数据添加到重定向URL的查询参数中。

总的来说,在Spring MVC应用程序中使用ModelAndView是一种非常方便的方式来处理模型数据和视图信息。它提供了一种简洁、灵活且强大的方式来处理Web请求。

目录
相关文章
|
JSON 数据格式
【异常】com.alibaba.fastjson.JSONException: unclosed string : U
【异常】com.alibaba.fastjson.JSONException: unclosed string : U
3737 0
|
SQL 缓存
mybatisplus分页查询——Page
(2)各个参数的含义 (1)records:用来存放查询出来的数据 (2)total: 用来返回记录的总数 (3)size: 每页显示条数,默认 10 (4)current:表示当前页,默认1 (5)orders: 排序字段信息 (6)optimizeCountSql: 自动优化 COUNT SQL,默认true (7)isSearchCount: 是否进行 count 查询,默认true (8)hitCount: 是否命中count缓存,默认false
2086 0
|
NoSQL Redis UED
redis数据迁移、数据导出和导入用什么工具
用户体验好的客户端,我建议使用yunedit-redis来做数据迁移,因为它支持图形化,还支持多种导出方式。 yunedit-redis它支持全库导出,也支持选择部分key导出,还支持用*号表达式导出。
|
前端开发 Java 定位技术
SpringMVC之ModelAndView类详细分析(全)
目录前言1. 方法2. 配置3. addObject 添加对象详解4. 重定向 前言 通过查看源码可以得知 这个类主要是 在web MVC框架中的模型和视图的Holder。 请注意,这些是完全不同的。 这个类仅仅保存了两者,使得控制器可以在一个返回值中同时返回模型和视图。 表示处理程序返回的模型和视图,由DispatcherServlet解析。 视图可以采用String视图名的形式,需要通过ViewResolver对象解析; 或者,可以直接指定一个View对象。 该模型是一个Map,允许使用多个按名称键控
799 0
SpringMVC之ModelAndView类详细分析(全)
|
XML JSON Java
【SpringBoot(三)】从请求到响应再到视图解析与模板引擎,本文带你领悟SpringBoot请求接收全流程!
Springboot专栏第三章,从请求的接收到视图解析,再到thymeleaf模板引擎的使用! 本文带你领悟SpringBoot请求接收到渲染的使用全流程!
800 3
|
存储 前端开发 Java
Spring MVC中@SessionAttributes注解使用详解
Spring MVC中@SessionAttributes注解使用详解
602 0
|
人工智能 Cloud Native 安全
统一多层网关好处多,阿里云云原生 API 网关打造全能型网关
本文分享了作为一款全能型网关【云原生 API 网关】是如何帮助企业落地统一网关架构的。
9465 119
|
Java 数据库 开发者
详细介绍SpringBoot启动流程及配置类解析原理
通过对 Spring Boot 启动流程及配置类解析原理的深入分析,我们可以看到 Spring Boot 在启动时的灵活性和可扩展性。理解这些机制不仅有助于开发者更好地使用 Spring Boot 进行应用开发,还能够在面对问题时,迅速定位和解决问题。希望本文能为您在 Spring Boot 开发过程中提供有效的指导和帮助。
2806 12
|
前端开发 Java Spring
10个SpringMVC的核心组件详解
Spring MVC 核心组件包括 DispatcherServlet(前端控制器)、Controller(处理请求)、HandlerMapping(映射请求到方法)、HandlerAdapter(调用不同处理器)、ViewResolver(解析视图)、ModelAndView(传递数据到视图)、数据绑定、异常处理器、消息转换器和主题解析器。这些组件协同工作,支持基于 MVC 的 Web 应用开发,使请求处理、业务逻辑和视图渲染得以有序进行。了解并掌握这些组件有助于深入理解 Spring MVC 的工作原理。【5月更文挑战第2天】
1092 4
|
设计模式 前端开发 Java
谈谈springboot的责任链模式
【4月更文挑战第16天】责任链模式是一种行为设计模式,旨在将请求的发送者和接收者解耦。在这种模式中,多个对象可以处理同一请求,但具体由哪个对象处理,则取决于运行时决定。这样的设计使得请求的处理者形成一条链,每个处理者都有机会处理请求或者将其传递给链中的下一个处理者
669 5