我正在使用Spring Boot编写RESTful服务器。我使用Pageable来处理大小和页面参数,我希望请求中的页码1被视为第一页(默认值为0)。这是我的配置:
@Configuration
public class WebConfiguration extends WebMvcConfigurerAdapter {
// ...
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
resolver.setFallbackPageable(new PageRequest(0, 20));
resolver.setOneIndexedParameters(true);
argumentResolvers.add(resolver);
super.addArgumentResolvers(argumentResolvers);
}
}
让我们举例说明以下参数:?page=1&size=5
。
如果没有第resolver.setOneIndexedParameters(true);
行,服务器将使用5个元素回答第2页(页码从0开始)。
但是当我不知道时,服务器用 4 元素回答第一页(现在页面编号从1开始)(显然我希望我的服务器用5个元素代替4)。依此类推:使用size=6
我得到5个元素等等。
我的猜测setOneIndexedParameters
会影响页面的大小,但这只是一个废话... Javadoc明确提到它只配置页码。
我错过了什么?谢谢你的帮助。
编辑: Spring Boot版本为1.2.5。RELEASE