引导(1.4.0)分页的"可分页".它没有任何问题.但默认情况下,页面值从"0"开始,但在前端页面值从"1"开始.那么是否有任何增加值的标准方法而不是手动增加代码中的页码?
public Page<Device> find(DeviceFindCommand deviceFindCommand, Pageable pageable){
//page = 0 //Actual is 0, Expected increment by 1.
}
Run Code Online (Sandbox Code Playgroud)
任何帮助都应该是值得的.
在实施Alan回答有以下问题后,
1)仍然我能够访问返回第一页的零页面(我不知道这是不是问题,但我希望得到更好的清晰度).
HTTP://本地主机:8180/API/V1 /书籍/页= 3&大小= 2
响应
{
"content": [
{
"id": "57da9eadbee83fb037a66029",
.
.
.
}{
.
.
.
}
],
"last": false,
"totalElements": 5,
"totalPages": 3,
"size": 2,
"number": 2, //strange always getting 1 less than page number.
"sort": null,
"first": true,
"numberOfElements": 2
}
Run Code Online (Sandbox Code Playgroud)
2)"数字":2,在响应中总是得到一个小于页码.它应该返回当前页面索引.
控制器方法:
public Mission createMission(final @Valid @RequestBody Mission mission) {
//save..
return mission;
}
Run Code Online (Sandbox Code Playgroud)
我想将所有验证错误消息枚举为 json 并返回。
我可以通过创建一个新的异常类来做到这一点,在控制器方法参数中添加 BindingResult,当绑定结果有错误时抛出新的异常并在 @ControllerAdvice 类中处理异常。
if (bindingResult.hasErrors()) {
throw new InvalidRequestException("Fix input and try again", bindingResult);
}
Run Code Online (Sandbox Code Playgroud)
但我想避免在每个控制器方法中检查 BindingResult,而是全局处理。如果我可以处理异常,我可以做到这一点:org.springframework.web.bind.MethodArgumentNotValidException。但不幸的是 Spring Boot 不允许
@ExceptionHandler(MethodArgumentNotValidException.class)
Run Code Online (Sandbox Code Playgroud)
它显示了不明确的异常处理程序,因为处理了相同的异常 ResponseEntityExceptionHandler,并且我无法覆盖 handleException,因为它是最终的。我尝试通过捕获 Exception.class 来覆盖受保护的 ResponseEntity handleMethodArgumentNotValid(),但这根本没有被调用。
有没有办法实现这个目标?对于一个简单的任务来说,这似乎有很多事情:(