org.springframework.data.domain.Pageable возвращает номер первой страницы 0 - PullRequest
0 голосов
/ 24 декабря 2018

с использованием org.springframework.data.domain.Pageable.Я хочу начать номер подкачки с 1. Я видел тот же пост и сделал, но они не работают в моем приложении.

Получить номер нумерации пружинной загрузки начинается с 1 вместо 0

Остаток данных пружины - настройка нумерации страниц

build.gradle

dependencies {
    compile 'org.springframework.boot:spring-boot-starter-web'
    compile 'org.springframework.data:spring-data-rest-webmvc'
}

config

import org.springframework.data.web.PageableHandlerMethodArgumentResolver;
import org.springframework.data.web.config.PageableHandlerMethodArgumentResolverCustomizer;
import org.springframework.stereotype.Component;

@Component
public class CustomConfig implements PageableHandlerMethodArgumentResolverCustomizer {
    @Override
    public void customize(PageableHandlerMethodArgumentResolver pr) {
        pr.setOneIndexedParameters(true);
    }
}

контроллер

@GetMapping("/")
public Integer index(Pageable pageable) {
    return pageable.getPageNumber();
}

результат

% curl 'localhost:8080/'
0
% curl 'localhost:8080/?page=1'
0
% curl 'localhost:8080/?page=2'
1

Хочу сделать

% curl 'localhost:8080/'
1
% curl 'localhost:8080/?page=1'
1
% curl 'localhost:8080/?page=2'
2

1 Ответ

0 голосов
/ 24 декабря 2018

Попробуйте настроить с помощью WebMvcConfigurerAdapter, как показано ниже, вместо непосредственной реализации PageableHandlerMethodArgumentResolverCustomizer.

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
        PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
        resolver.setOneIndexedParameters(true);
        argumentResolvers.add(resolver);
        super.addArgumentResolvers(argumentResolvers);
    }
}

Если вы используете Spring Boot 2.X, вы можете переключиться с WebMvcConfigurerAdapter на свойства приложения, как показано ниже:

# DATA WEB (SpringDataWebProperties)
spring.data.web.pageable.default-page-size=20 # Default page size.
spring.data.web.pageable.max-page-size=2000 # Maximum page size to be accepted.
spring.data.web.pageable.one-indexed-parameters=true # Whether to expose and assume 1-based page number indexes.
spring.data.web.pageable.page-parameter=page # Page index parameter name.
spring.data.web.pageable.prefix= # General prefix to be prepended to the page number and page size parameters.
spring.data.web.pageable.qualifier-delimiter=_ # Delimiter to be used between the qualifier and the actual page number and size properties.
spring.data.web.pageable.size-parameter=size # Page size parameter name.
spring.data.web.sort.sort-parameter=sort # Sort parameter name.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...