Mik*_*ell 29 java spring spring-mvc httprequest
@RequestBody在Spring中使用注释时,如何在REST API调用中使body可选?
使用Spring的最新版本,如果使用@RequestBody注释,它会使客户端始终发送正文而不使其成为可选项.
我试过@RequestBody (required=false)但是没有用,我的请求仍然是null.
如何在不强制要求的情况下将请求转换为正确的必需对象?
例如:
@RequestMapping(value="/add/employee", method=RequestMethod.POST)
public void addEmployee(@RequestBody Employee employee){
// ...
}
Run Code Online (Sandbox Code Playgroud)
在这里,我想使用POST添加员工,但没有正文.我怎么做?如果我发送空体,春天最新版本抛出错误"身体缺失"...
Jac*_*son 39
@Santosh,我不确定你指的是哪个必要的论点.迈克已经提到他尝试使用@RequestBody (required=false)并且请求仍然是空的.也许你可以详细说明并举例说明.
@Mike,可能你可以尝试使用另一个独立的转换器来满足你的需求.
注意:我注意到Spring v4.1.6的相同问题,迈克可能正在使用它,因为他提到他正在使用最新版本.
cil*_*ilf 13
您可以使用java.util.Optional:
@RequestMapping(value="/add/employee", method=RequestMethod.POST)
public void addEmployee(@RequestBody Optional<Employee> employee){
// ...
}
Run Code Online (Sandbox Code Playgroud)
我猜你使用的是高于3.2的弹簧版本,因为版本存在问题.@RequestBody应该有一个必需的参数来允许请求体是可选的
看看以下链接 Spring @RequestBody Anotation
@RequestBodyBody需要和参数必需,默认情况下为true.将其指定为false将对您有所帮助
需要公共抽象布尔值
是否需要身体内容. 默认值为true,导致在没有正文内容的情况下抛出异常.如果您希望在body内容为null时传递null,请将其切换为false.
| 归档时间: |
|
| 查看次数: |
43490 次 |
| 最近记录: |