我的Spring Boot应用程序控制器包含以下带有可选Pageable参数的方法。
@RequestMapping(method = RequestMethod.GET)
@Override
public Page<MarkupView> getAllMarkup(Pageable pageable) {
System.out.println("Page size" + pageable.getPageSize() ) // prints 20
return markupService.getAllMarkups(pageable);
}
我的问题是,当我使用swagger-ui传递查询参数时,这些值未绑定到可分页对象。为什么我说不管是否将值5作为查询参数都将pageSize打印为20。
请求URL:http://localhost:8080/api/markups?offset=2&pageNumber=1&pageSize=5
在Get请求之上,我返回了包含所有MarkupView记录的Page对象。
我不确定为什么要像这样实现它。我宁愿按原样接收请求参数,然后在pojo中设置它们而不是这样做。我在我的机器上进行了测试,它将按预期进行绑定。看看下面的实现是否有帮助!
@GetMapping("/api/markups")
@Override
public Page<MarkupView> getAllMarkup(final @RequestParam(name = "pageSize", required = false) Integer pageSize, final @RequestParam(name = "offset", required = false) Integer offset, final @RequestParam(name = "pageNumber", required = false) Integer pageNumber) {
System.out.println("Page size" + pageSize );
System.out.println("offset" + offset );
System.out.println("Page number" + pageNumber );
return markupService.getAllMarkups(pageSize,offset,pageNumber);
}