2017-10-18 71 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

相關問題