查询参数值未绑定到Spring Pageable

问题描述 投票:0回答:2

我的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对象。

java spring-boot spring-data-jpa swagger-ui query-parameters
2个回答
1
投票

我不确定为什么要像这样实现它。我宁愿按原样接收请求参数,然后在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); }

-2
投票
© www.soinside.com 2019 - 2024. All rights reserved.