这是我的当前PageableResolver:
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
PageableArgumentResolver resolver = new PageableArgumentResolver();
resolver.setFallbackPageable(new PageRequest(1, 5));
argumentResolvers.add(new ServletWebArgumentResolverAdapter(resolver));
}
但是PageableArgumentResolver已被弃用,并且链接到PageableHandlerMethodArgumentResolver,我认为我们可以像这样注册它而无需适配器:
PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
resolver.setFallbackPageable(new PageRequest(0, 10));
return new HandlerMethodArgumentResolver[]{resolver};
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
resolver.setFallbackPageable(new PageRequest(0, 5));
argumentResolvers.add(resolver);
}
首先,实现新的PageableHandlerMethodArgumentResolver类有一些不同之处,因为new PageRequest(1, 5)
指的是第二页,所以我必须使用new PageRequest(0, 5)
来显示第一页。
但我仍然遇到了这个新对象的问题。当我在不带参数的情况下调用URL(page.page和page.size都没有)时,分页栏的第一次加载非常完美。然而,当我想要移动分页栏时,我们使用两个参数调用相同的URL(例如,page.page=3&page.size=5),仍然显示第一页。我认为这个新的解析器需要更多的参数,以便它不激活回退条件。您有任何关于如何使用PageableHandlerMethodArgumentResolver的想法吗?