热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在最新的Springv4中使用带有可选主体的@RequestBody

如何解决《在最新的Springv4中使用带有可选主体的@RequestBody》经验,为你挑选了2个好方法。

@RequestBody在Spring中使用注释时,如何在REST API调用中使body可选?

使用Spring的最新版本,如果使用@RequestBody注释,它会使客户端始终发送正文而不使其成为可选项.

我试过@RequestBody (required=false)但是没有用,我的请求仍然是null.

如何在不强制要求的情况下将请求转换为正确的必需对象?

例如:

@RequestMapping(value="/add/employee", method=RequestMethod.POST)
public void addEmployee(@RequestBody Employee employee){
    // ...
}

在这里,我想使用POST添加员工,但没有正文.我怎么做?如果我发送空体,春天最新版本抛出错误"身体缺失"...



1> Jack Dorson..:

@Santosh,我不确定你指的是哪个必要的论点.迈克已经提到他尝试使用@RequestBody (required=false)并且请求仍然是空的.也许你可以详细说明并举例说明.

@Mike,可能你可以尝试使用另一个独立的转换器来满足你的需求.

注意:我注意到Spring v4.1.6的相同问题,迈克可能正在使用它,因为他提到他正在使用最新版本.



2> Santosh Josh..:

我猜你使用的是高于3.2的弹簧版本,因为版本存在问题.@RequestBody应该有一个必需的参数来允许请求体是可选的

看看以下链接 Spring @RequestBody Anotation

@RequestBodyBody需要和参数必需,默认情况下为true.将其指定为false将对您有所帮助

需要公共抽象布尔值

是否需要身体内容. 默认值为true,导致在没有正文内容的情况下抛出异常.如果您希望在body内容为null时传递null,请将其切换为false.


当使用String作为RequestBody(required = false)时,默认值不会为null,而是为{}.不知道为什么,但花了我一些时间,并认为我分享.
推荐阅读
author-avatar
追梦and寻梦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有