Javaweb/SpringBoot/SpringCloud/SpringCloud Alibaba后端的返回值类型

前言

在很久以前,写过一篇关于Web开发中的 Model、ModelMap和ModelAndView的使用详解,当时也是本着一个记录的心情去写的,所以尽量通俗,没想到,截止到目前,仍然有很多小伙伴在阅读和学习这篇文章,这让笔者想到,不管是现在科技怎么发达,依然会有很多初学者,于是,就出了这篇扫盲文。

导航图
在SpringBoot中,并不能直接响应客户端的请求结果,通常的做法是依赖SpringMVC框架返回结果,所以本文介绍的是SpringBoot下常见的四种返回类型,实际上也是SpringMVC的返回值类型。

目前SpringBoot框架的风头已经超过了当初的SSM框架,很多小伙伴甚至已经跳过了对SSM的学习,笔者还是建议去学习一下SSM,毕竟会SSM的人一定会SpringBoot,学习还是从基础来的好。

web项目常见返回信息的方式

不管是在jsp+servlet,SSH还是SSM,还是现在的SpringBoot、SpringCloud、SpringCloud Alibaba项目中,你可能会在各种Controller层中,看到如下的这些写法。

第一类:Void

如果一个控制层的方法,返回值标注为void类型,会出现以下几种情况:

1.无return的情况

如果方法内没有写return,那么SpringMVC默认把delete(映射的URL),当成视图名称(页面名)来解析,如果存在该视图,就返回给客户端;如果不存在该视图,就会报视图找不到异常(找不到前端VIew路径)。

@GetMapping("/delete")
public void deleteUser(String userId) {
   
	//删除操作
}

报错:

org.thymeleaf.exceptions.TemplateInputException: Error resolving template [user/delete], template might not exist or might not be accessible by any of the configured Template Resolvers

图示
报错信息
解放办法:

通过加 @ResponseBody 来修改默认行为,该注解表示返回JSON数据,这里返回空JSON数据,而不是把URL当成视图名称来解析。

 @GetMapping("/delete")
 @ResponseBody
 public void deleteUser(String userId) {
   
     //删除操作
 }

就不会在报异常。

因为在控制器类上加@RestController注解或者其方法上加入@ResponseBody注解后,默认会使用jackson插件来返回json数据。

2.重定向的情况

代码中采用Response来重定向请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖一点雨

原创不易,鼓励鼓励~~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值