2017-10-18 68 views
1

我使用下面的控制器方法有没有办法限制Spring的Pageable传递给控制器​​方法的大小和页面值?

public String listUsers(@PageableDefault(size = 20, page = 0) Pageable pageable) 

而且很明显,我们可以CONTROLL页面和大小与查询参数sizepage。但可以说,我们想要保护我们免于由用户或由于调试而在一页中丢弃整个数据库。是否有限制,可以设置为Pageable对象,例如。 @DefaultPageableConstrains或我必须手动验证尺寸?

我只想使用Spring验证机制,如@Valid@Min@Max注释。

回答

2

默认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; 
    } 
} 
+0

这是我已经找到了为好。也许你会知道我的后续问题的答案? https://stackoverflow.com/questions/46820935/what-is-happening-with-default-argument-resolver-when-custom-resolver-for-same-t – Antoniossss

相关问题