我们有这样一个请求主体,它应该在访问端点时Map查询参数
// Uses Lombok @Data
public class RetrieveTxnRequest {
private Short pageStart = 0;
private Short pageSize = Short.MAX_VALUE;
}
但当我们这样调用端点时:
serverUrl/ourEndpoint?pageSize=
pageSize
被设置为null
。如果我们提供一个值,它就可以工作。我注意到如果我们使用@RequestParams而不是使用类,问题就不会发生:
@GetMapping("/ourEndpoint")
public OurResponse getTransactions(@RequestParam(required = false, defaultValue = "0") Short pageStart,
@RequestParam(required = false, defaultValue = "50") Short pageSize)
因为设置了默认值。
我试着ff:
// Uses Lombok @Data
public class RetrieveTxnRequest {
private Short pageStart = 0;
@Value("50")
private Short pageSize = Short.MAX_VALUE;
}
但是它似乎不起作用,如果我们使用上面提到的端点,pageSize仍然为null
tldr:有没有办法在Spring @RequestBody类中设置默认值?
3条答案
按热度按时间huwehgph1#
使用空值=空值。SKIP
mkh04yzy2#
您可以在类别中设定值,它会被视为预设值。
另请参阅link以了解此响应
bvjveswy3#
我只是试着重现你的问题,我想用这种方法你可以试着把你的默认值放在请求体类中。
我创建了一个如下所示的RequestBody类
}
并创建了一个请求处理程序方法,如下所示
我试着通过 Postman 身体发送数据,每次如果数据在那里,它被忽略,否则默认数据来了。