SpringMVC 方法四种类型返回值总结(你用过几种)

SpringMVC 方法四种类型返回值总结

SpringMVC 的控制器方法可以有四种类型的返回值,这四种类型分别是:

  1. ModelAndView
  2. Model
  3. View
  4. String

下面将对这四种类型的返回值进行详细的讲解,并给出示例说明。

1. ModelAndView

ModelAndView 是 Spring 框架中常用的一种返回类型。它既包含了 Model 数据也包含了 View 视图,可以将数据和视图一同传递给前端进行展示。

控制器方法返回的 ModelAndView 对象,其中 Model 部分存储了数据,View 部分则指定了响应的视图,这个视图可以是 JSP、HTML、JSON 等。

示例代码:

@GetMapping("/hello")
public ModelAndView sayHello() {
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.addObject("message", "Hello World!");
    modelAndView.setViewName("hello");
    return modelAndView;
}

经过上述代码的处理,我们可以在 hello.jsp 页面中使用 ${message} 的方式获取 Hello World! 的值并显示在页面上。

2. Model

Model 是 Spring 框架中另一种常用的返回类型。这种返回类型只包含 Model 部分,视图部分则会自动解析为当前请求的 URL 。

示例代码:

@GetMapping("/welcome")
public Model sayWelcome(Model model) {
    model.addAttribute("message", "Welcome to my website!");
    return model;
}

上述代码在访问 /welcome 的时候,如果被成功地执行,会自动跳转到 welcome.jsp 页面。在该页面中,同样可以使用 ${message} 的方式获取相应的值并显示。

3. View

View 是 Spring 框架中比较少使用的一种返回类型,它只包含 View 视图部分,不包含 Model 数据。这种返回类型可以直接指定需要响应的视图。

示例代码:

@GetMapping("/bye")
public View sayBye() {
    RedirectView view = new RedirectView();
    view.setUrl("https://www.baidu.com");
    return view;
}

上述代码中,我们将视图设置为 https://www.baidu.com,在访问 /bye 的时候,浏览器会自动跳转到指定的地址。

4. String

String 是 Spring 框架中最常用的一种返回类型。它只包含了 View 视图的名称,不包含任何数据。

示例代码:

@GetMapping("/greet")
public String sayGreet(Model model) {
    model.addAttribute("message", "Nice to meet you!");
    return "greet";
}

同样地,上述代码中,我们可以在 greet.jsp 中使用 ${message} 的方式获取相应的值并显示在页面上。

总结

根据上面的讲解,我们可以得出以下结论:

  1. ModelAndView 包含 Model 部分和 View 部分;
  2. Model 只包含 Model 部分,视图部分则会自动解析;
  3. View 只包含 View 部分,不包含任何数据;
  4. String 只包含 View 视图的名称,不包含任何数据。

在实际开发中,不同的返回类型会因为不同的应用场景而有不同的选择,需要根据具体的业务需求进行选择。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringMVC 方法四种类型返回值总结(你用过几种) - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • spring boot 配置动态刷新实现详解

    下面就为大家介绍“springboot配置动态刷新实现详解”的完整攻略。 一、概述 在使用SpringBoot时,有时候需要对应用程序的配置进行变更,需要重新启动应用程序才能使配置生效,这就非常繁琐。因此,为了解决这个问题,一些第三方库就提出了SpringCloud Config的方案,通过配置中心实现配置修改后能够自动刷新到应用程序当中,但是这也存在着一些…

    Java 2023年5月15日
    00
  • 解析Java中PriorityQueue优先级队列结构的源码及用法

    解析Java中PriorityQueue优先级队列结构的源码及用法 什么是优先级队列? 优先级队列是一种特殊的队列,它会根据元素的优先级来决定队列中元素的顺序。在Java中,我们可以使用PriorityQueue类来实现优先级队列。 PriorityQueue源码解析 Java中的优先级队列主要由以下几个部分组成: PriorityQueue的构造函数 pu…

    Java 2023年5月19日
    00
  • 基于@JsonSerialize和@JsonInclude注解使用方法

    这里为您详细讲解关于“基于@JsonSerialize和@JsonInclude注解使用方法”的完整攻略。 什么是@JsonSerialize注解和@JsonInclude注解? 在介绍使用方法之前,我们先来简单了解一下这两个注解的概念。 @JsonSerialize注解是用于指定Java对象序列化为JSON数据的类或者具体实例的序列化方式。 @JsonIn…

    Java 2023年5月26日
    00
  • 如何使用Spring自定义Xml标签

    如何使用Spring自定义Xml标签 Spring框架允许开发者自定义标签,扩展Spring标签库,以便支持自定义的xml标签。本文将介绍如何使用Spring自定义Xml标签,并提供两例示例说明。 Spring自定义Xml标签的过程: 定义schema文件 定义一个schema文件,以xsd为后缀名,包含Element和Attribute的定义。 编写Nam…

    Java 2023年6月15日
    00
  • java运行时数据区域和类结构详解

    关于“java运行时数据区域和类结构详解”的攻略,下面是详细讲解: Java运行时数据区域 Java虚拟机在执行Java程序时,会将它所管理的内存划分成不同的数据区域,分别用于存储不同类型的数据。主要分为以下几个部分: 程序计数器 程序计数器是一块较小的内存空间,它的作用是记录当前线程执行的字节码的位置。程序计数器一般不会出现OutOfMemoryError…

    Java 2023年5月26日
    00
  • Java 程序初始化顺序

    Java 中的类有一个初始化顺序,这决定了类中的字段和静态代码块的初始化顺序。要理解这个初始化顺序,需要了解以下方法和静态变量的初始化规则,以及如何保持正确的初始化顺序。 1. 静态变量初始化 在 Java 类中,静态变量是在类被加载时初始化的。这意味着当 JVM 加载类时,会先初始化静态变量,然后才会初始化普通变量。 以下是初始化静态变量的示例代码: pu…

    Java 2023年5月23日
    00
  • SpringBoot图文并茂讲解依赖管理的特性

    SpringBoot图文并茂讲解依赖管理的特性 SpringBoot是一个非常流行的JavaWeb应用框架,其依赖管理的特性可以为我们开发带来很多便利。在本篇攻略中,我们将详细讲解SpringBoot依赖管理的特性,包括如何添加依赖、如何排除依赖、如何解决冲突等内容。 添加依赖 在使用SpringBoot开发Web应用时,我们经常需要使用许多第三方库来增强我…

    Java 2023年5月15日
    00
  • 超级全面的PHP面试题整理集合

    下面是详细的“超级全面的PHP面试题整理集合”的攻略: 了解题目类型 首先,我们需要了解常见的PHP面试题目类型,包括基础知识、算法题、框架相关、数据库相关等。通过了解这些题目类型,我们可以对备考做出有针对性的准备。 例如,对于基础知识题目,需要掌握变量、语法规则、函数等基本知识,同时还需要注意PHP的底层实现原理;对于算法题目,需要熟练掌握各类排序、查找、…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部