获取 spring boot 分页号从 1 而不是 0 开始

Tha*_*Man 1 java pagination spring-boot

我正在为我的 API 使用 Spring Boot。我的 API 中有一个分页的概念,所以我为此使用了 spring-data-core 2.5.5 RELEASE。现在作为响应,当我访问 API 的第一页时,响应中的可分页对象如下

"page": { "size": 200, "totalElements": 15, "totalPages": 1, "number": 1 // always less than by 1 from the given page number }

我已经尝试设置属性setOneIndexedParameters(true) 但问题仍然存在。

请告诉我一种在不增加代码数量的情况下正确处理的方法。

小智 6

你是怎么设置属性的setOneIndexedParameters?要自定义分页,您只需要注册一个实现接口的 bean PageableHandlerMethodArgumentResolverCustomizer

例如

@Configuration
public class CustomConfig {

    @Bean
    public PageableHandlerMethodArgumentResolverCustomizer customize() {
        return p -> p.setOneIndexedParameters(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

或者

@Component
public class CustomConfig implements 
                    PageableHandlerMethodArgumentResolverCustomizer {

    @Override
    public void customize(PageableHandlerMethodArgumentResolver pr) {
        pr.setOneIndexedParameters(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

参考:用于可分页和排序的 HandlerMethodArgumentResolvers