gpt4 book ai didi

java - Spring PageableArgumentResolver 已弃用,如何使用 PageableHandlerMethodArgumentResolver?

转载 作者:IT老高 更新时间:2023-10-28 13:57:39 35 4
gpt4 key购买 nike

这是我当前的 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 吗?

最佳答案

我刚刚在这个类的实现中找到了答案。我们现在需要对这个新类进行 2 处更改:

  1. 参数不再有前缀“page”。 "..?page=2&size=5"有效。
  2. 既然第 1 页现在指的是第 2 页,我们必须在 pagination.jsp 中重新定义我们的参数:..?page=${item.number-1} 而不是 ..?page=${item.number}

关于java - Spring PageableArgumentResolver 已弃用,如何使用 PageableHandlerMethodArgumentResolver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19756786/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com