【发布时间】:2013-11-14 10:13:36
【问题描述】:
这是我当前的 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) 指的是第二页,所以我必须使用new PageRequest(0, 5) 才能显示第一页。
但我仍然对这个新对象有疑问。当我调用不带参数的 URL(既不是 page.page 也不是 page.size)时,分页栏的第一次加载是完美的。然后当我想在分页栏上移动时,我们用 2 个参数(例如 page.page=3&page.size=5)调用相同的 url,仍然显示第一页。我认为这个新的解析器需要的不仅仅是这两个参数,这样它就不会激活回退条件。你知道如何使用这个 PageableHandlerMethodArgumentResolver 吗?
【问题讨论】:
标签: java spring spring-mvc spring-data