Значения параметров запроса не привязываются к Spring Pageable - PullRequest
1 голос
/ 10 октября 2019

В моем контроллере приложений для весенней загрузки есть метод, описанный ниже, с необязательным параметром 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, эти значения не привязываются к объекту с возможностью просмотра. Почему я сказал, что он печатает pageSize как 20, передам ли я значение 5 в качестве параметра запроса.

URL запроса: http://localhost:8080/api/markups?offset=2&pageNumber=1&pageSize=5

выше Получение запроса возвращаетme Страница объекта, которая содержит все MarkupView записи.

Ответы [ 2 ]

2 голосов
/ 10 октября 2019

Ссылаясь на раздел 5 Веб-поддержка Spring Data . Пожалуйста, проверьте, соблюдаете ли вы упомянутую конфигурацию. Затем обновите имя параметра запроса с pageNumber до page и pageSize до size.

0 голосов
/ 10 октября 2019

Я не уверен, почему вы реализовали это так. Я бы предпочел взять параметры запроса в том виде, в каком есть, и затем установить их в виде 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);
  }
...