一篇文章带你了解Java SpringMVC返回null
作者:路人甲Java 发布时间:2023-11-24 15:18:03
1、回顾一下
大家有没有注意到,目前讲到的所有 controller 中的方法接收到请求之后,都是有返回值的,返回值主要有 2 种类型:
1、 输出的是页面:也就是视图(会向客户端输出页面),此时方法的返回值可以是 String
(视图名称)、ModelAndView
(页面中有数据的情况)
2、输出的是 json 格式的数据:需要用到@ResponseBody
注解
这 2 种情况中,都是 springmvc 来处理返回值的,接受到返回值之后,会调用 response 来进行页面跳转或者调用输出流将 json 格式的数据输出。
2、思考一个问题
当方法的返回值为 void 或者方法中返回 null 的时候,springmvc 会怎么处理呢?
比如下面 2 个方法:
@GetMapping("/test1")
public void test(){
}
@GetMapping("/test1")
public Object test(){
return null;
}
当出现上面这 2 种情况的时候,springmvc 调用这些方法之后,请求就结束了,springmvc 会认为在控制器的方法中响应已经被处理过了,不需要 springmvc 去处理了。
3、springmvc 的处理流程
4、使用场景
当响应结果比较复杂的时候,springmvc 无法处理这些响应结果的时候,我们可以在控制器的方法中使用 response 来主动控制输出的结果。
比如下载文件、断点下载文件等比较复杂的响应,此时我们可以在处理器的方法中使用 HttpServletResponse 来自己控制输出的内容,可以执行更细粒度的操作。
5、总结
到目前我们主要掌握了 3 种类型的返回值,工作中基本上最常用的就是这 3 种方式,咱们要掌握好:
第 1 种:返回视图,即页面,此时返回值可以是 String(视图名称)、或者 ModelAndView
第 2 种:返回 json 格式数据,需在方法上添加 @ResponseBody 注解
第 3 种:方法返回值为 void 或者 return null;此时需要我们在方法中自己通过 HttpServletResponse 对象来主动向客户端输出结果。
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
来源:https://blog.csdn.net/likun557/article/details/118865329
猜你喜欢
- 图像的旋转需要调用 Graphics2D 类的rota
- 使用对象访问类中的成员:对象名.成员变量;对象名.成员方法();成员变量的默认值:具体实例代码:public class StudentTe
- 一 应用规划: ※ 确定功能。 ※ 必须的界面及界面跳转的流程。
- 最近碰到这么个恶心的问题问题:有个arr文件被放到Module A中引用,现在Module B又依赖了Module A,则在编译过程中会发生
- WPF下给ComboBox设置绑定字段时可通过如下设置:combobox.SelectedValuePath = "编号"
- Java Boolean 初始化方式1、Boolean(String boolString);以字符串的方式初始化,只有当字符串是“true
- 本文实例为大家分享了Java生成6位随机字符串的实现代码,具体内容如下package com.amos.tools;import java.
- 一、判断字母string str = Console.ReadLine();if (char.isLetter(str)){}else if
- 本文实例讲述了C#实现读取注册表监控当前操作系统已安装软件变化的方法。分享给大家供大家参考。具体实现方法如下:private static
- 本文实例为大家分享了Android自定义Seekbar滑动条的具体代码,供大家参考,具体内容如下由于项目需要做出此效果,自定义写了一个。效果
- 本文介绍了JAVA利用HttpClient进行HTTPS接口调用的方法,分享给大家,具体如下:1.为了避免需要证书,所以用一个类继承Defa
- 一、场景描述接《Java设计模式(一)工厂模式》工厂模式有一缺点,就是破坏了类的封闭性原则。例如,如果需要增加Word文件的数据采集,此时按
- TabBar在实际开发中导航栏是必不可少的控件,QtQuick Controls控件中可以使用TabBar来做导航栏,原始的导航栏是横向的,
- 本文实例讲述了Android编程之View简单学习示例。分享给大家供大家参考,具体如下:View,是Android的一个超类,这个类几乎包含
- 本文实例为大家分享了Android优酷圆形菜单的具体代码,供大家参考,具体内容如下先来看看效果:首先来分析一下:这个菜单可以分成三个菜单:1
- 通过配置变量调用配置文件url1.application.yml 配置文件配置参数feign: sys: http://127.
- 本文实例讲述了Java Lambda表达式与匿名内部类的联系和区别。分享给大家供大家参考,具体如下:一 点睛Lambda表达式与匿名内部类存
- 一、前言:前段时间微信更新了新版本后,带来的一款H5小游戏“跳一跳”在各朋友圈里又火了起来,类似以前的“ * ”游戏,这游戏玩法简单,但加上
- 第一步:项目中资源配置文件夹(resources文件夹)下先新增测试环境application-dev.yml和application-pr
- analyzer的使用规则查询只能查找倒排索引表中真实存在的项, 所以保证文档在索引时与查询字符串在搜索时应用相同的分析过程非常重要,这样查