【发布时间】:2017-11-08 08:35:24
【问题描述】:
我有一个带有可选 @RequestBody 参数的 Rest Controller,如果用户没有指定它,我想初始化它。现在我正在这样做:
@PostMapping
public ResponseEntity<Page<?>> findAll(
@RequestBody(required=false) MyRequest request,
Pageable pageable
) {
if (request == null) {
request = new MyRequest();
}
...
}
是否有任何自动方式告诉 Spring MVC,如果参数为 null,它必须创建一个新对象?
【问题讨论】:
-
我猜它确实创建了一个新对象,如果请求正文为空,它不会初始化它。
-
问题是,如果我没有像我一样专门创建一个新对象,如果我尝试访问一个对象的方法,就会弹出空指针异常
-
如果没有请求正文,那么它不应该是
POST调用,为什么不创建一个单独的GET具有相同映射的端点呢?我认为这是最合适的解决方案。 -
我已经有一个,但我还需要验证这个
标签: spring spring-mvc spring-boot