这是我当前的 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,我想我们可以在没有适配器的情况下注册,如下所示:
@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)
指的是 2. 页面,所以我不得不使用new PageRequest(0, 5)
它来显示第一页。
但是我仍然对这个新对象有疑问。当我调用不带参数的 URL(既不是 page.page 也不是 page.size)时,分页栏的第一次加载是完美的。然后当我想在分页栏上移动时,我们用 2 个参数(例如 page.page=3&page.size=5)调用相同的 url,仍然显示第一页。我认为这个新的解析器需要的不仅仅是这两个参数,这样它就不会激活回退条件。你知道如何使用这个 PageableHandlerMethodArgumentResolver 吗?