如果您正在谈论 Spring Data PagingAndSortingRepository,您可以使用以下方法设置默认页面大小@PageableDefault
在 Controller 方法上如下:
public String listClients(@ModelAttribute FilterForm form, Model model, WebRequest request, @PageableDefault(sort = { "surname",
"forename", "address.town" }, value = 50) Pageable pageable) {
}
或者,您可以在 Spring 配置中使用以下内容来配置全局默认值,如下所示的 XML 和 Java 配置。
请注意,较新版本的 Spring Data 使用从零开始的页面索引,而旧版本则使用 1 作为第一页。如果您的 UI 分页库期望 1 作为首页,那么您可以设置oneIndexedParameters
财产给true
:
- 公共无效setOneIndexedParameters(布尔oneIndexedParameters) https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/web/PageableHandlerMethodArgumentResolver.html#setOneIndexedParameters-boolean-
配置是否公开并假定基于 1 的页码索引
请求参数。默认为 false,表示页码为 0
请求中等于第一页。如果设置为 true,则页面
请求中的数字 1 将被视为首页。
参数: oneIndexedParameters - 要设置的 oneIndexedParameters
- 公共无效setFallbackPageable(可分页fallbackPageable) https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/web/PageableHandlerMethodArgumentResolver.html#setFallbackPageable-org.springframework.data.domain.Pageable-
将 Pageable 配置为在没有 PageableDefault 或情况下用作后备
PageableDefaults(后者仅在传统模式下受支持)可以是
在要解析的方法参数处找到。如果将其设置为空,
请注意,您的控制器方法将被传递给 null
如果请求中找不到可分页数据。注意,这样做
将要求您向机器人提供页面和尺寸参数
请求,因为任何参数都没有默认值
可用的。
参数:fallbackPageable - 用作常规的 Pageable
倒退。
在 XML 中,这看起来如下所示:
<mvc:annotation-driven>
<mvc:argument-resolvers>
<bean class="org.springframework.data.web.PageableHandlerMethodArgumentResolver">
<property name="oneIndexedParameters" value="true"/>
<property name="fallbackPageable">
<bean class="org.springframework.data.domain.PageRequest">
<constructor-arg name="page" value="1" />
<constructor-arg name="size" value="10" />
</bean>
</property>
</bean>
</mvc:argument-resolvers>
</mvc:annotation-driven>
在 Java Config 中,如下所示:
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
resolver.setOneIndexedParameters(true);
resolver.setFallbackPageable(new PageRequest(1, 20));
argumentResolvers.add(resolver);
super.addArgumentResolvers(argumentResolvers);
}
}