春季数据网页分页“页面”参数不起作用
我试图让Spring Data的网页分页工作。它在这里描述:春季数据网页分页“页面”参数不起作用
,这里是我的Java(Spring Web MVC框架@Controller处理方法):
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String list(
@PageableDefaults(value = 50, pageNumber = 0) Pageable pageable,
Model model) {
log.debug("Params: pageNumber={}, pageSize={}",
pageable.getPageNumber(), pageable.getPageSize());
...
}
这是我的Spring配置:
<mvc:annotation-driven>
<mvc:argument-resolvers>
<bean class="org.springframework.data.web.PageableArgumentResolver" />
</mvc:argument-resolvers>
</mvc:annotation-driven>
(看来,上面的配置是现在这样做的方式;链接中描述的配置方法已弃用。)
当我实际尝试使用page
和page.size
参数来控制分页时,后者工作得很好,但前者没有。例如,如果我打
http://localhost:8080/myapp/list?page=14&page.size=42
日志输出是
Params: pageNumber=0, pageSize=42
所以我知道该参数解析器踢,但不知道为什么它没有解决的页码。我尝试了一堆其他参数名称(例如,page.number,pageNumber,page.num等),并且它们都不起作用。
这是否适用于其他人?
页面参数实际上有点不直观 - page.page
而不是page
,更改为page.page
应该让事情发挥作用。
调查PageableArgumentResolver
我发现prefix
和separator
是可配置的,所以你可以配置类没有它。
public class PageableArgumentResolver implements WebArgumentResolver {
private static final Pageable DEFAULT_PAGE_REQUEST = new PageRequest(0, 10);
private static final String DEFAULT_PREFIX = "page";
private static final String DEFAULT_SEPARATOR = ".";
在我@Configuration类我做了不同的使用page
,size
,sort
和sortDir
默认实现。
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
PageableArgumentResolver resolver = new PageableArgumentResolver();
resolver.setPrefix("");
resolver.setSeparator("");
argumentResolvers.add(new ServletWebArgumentResolverAdapter(resolver));
}
现在这个工程
的http://:8080/MyApp的/列表页= 14 &大小= 42
,如果你想这样做,您可以覆盖参数:
<mvc:annotation-driven>
<mvc:argument-resolvers>
<bean class="org.springframework.data.web.PageableHandlerMethodArgumentResolver">
<property name="oneIndexedParameters" value="true"></property>
<property name="pageParameterName" value="page"></property>
<property name="sizeParameterName" value="size"></property>
</bean>
</mvc:argument-resolvers>
</mvc:annotation-driven>
Nik - 如果我们将oneIndexedParameters设置为true,那么pageIndex应该是什么? – Prateek 2015-09-16 14:27:28
哈哈,谢谢你。 – 2013-03-22 21:26:25
Spring 3 razor 2013-11-25 12:19:30
'page.page'似乎不起作用。任何变化? – 2017-11-03 03:12:08