【发布时间】:2019-12-14 02:57:03
【问题描述】:
有一个带有@RequestBody TypeA 的restcontroller 映射。
TypeA 已正确解析,即使我将 {} 作为正文发送。
我想要实现的目标是在根本不发送正文时具有相同的逻辑(@RequestBody 为空)。
代码:
@PostMapping('/post')
public ResponseEntity processPost(@RequestBody(required=false) Optional<TypeA> body) {
return service.someAction(body.orElse(new TypeA());
}
到目前为止,我看到的唯一可能的解决方案是设置 required = false,将类型包装在 Optional 中,然后使用 .orElseGet(...new),这可行,但看起来无效。
有没有合适的方法?
【问题讨论】:
-
我不明白您想要什么,您能否添加一些示例以及您的期望?
-
我正在尝试为空请求体和空请求体实现相同的行为
-
但是你想要的行为不清楚,一些代码会有所帮助
-
添加了“目前的情况”示例
-
好的,谢谢
but doesn't look valid.- 就我个人而言,我认为唯一的错误是将{}和null视为相同。但如果你真的需要这个,我看不出你的代码有什么问题
标签: java spring-boot jackson jackson-databind