有没有办法限制Spring的Pageable传递给控制器方法的大小和页面值?
问题描述:
我使用下面的控制器方法有没有办法限制Spring的Pageable传递给控制器方法的大小和页面值?
public String listUsers(@PageableDefault(size = 20, page = 0) Pageable pageable)
而且很明显,我们可以CONTROLL页面和大小与查询参数size
和page
。但可以说,我们想要保护我们免于由用户或由于调试而在一页中丢弃整个数据库。是否有限制,可以设置为Pageable对象,例如。 @DefaultPageableConstrains
或我必须手动验证尺寸?
我只想使用Spring验证机制,如@Valid
@Min
或@Max
注释。
答
默认maxpagesize可为2000。这可以被覆盖,像这样:
@Configuration
public class PaginationConfiguration extends SpringDataWebConfiguration {
private final int MAX_PAGE_SIZE = 200;
@Bean
@Override
public PageableHandlerMethodArgumentResolver pageableResolver() {
PageableHandlerMethodArgumentResolver pageableHandlerMethodArgumentResolver =
new PageableHandlerMethodArgumentResolver(sortResolver());
pageableHandlerMethodArgumentResolver.setMaxPageSize(MAX_PAGE_SIZE);
return pageableHandlerMethodArgumentResolver;
}
}
这是我已经找到了为好。也许你会知道我的后续问题的答案? https://stackoverflow.com/questions/46820935/what-is-happening-with-default-argument-resolver-when-custom-resolver-for-same-t – Antoniossss