Spring AutoPopulatingList最大大小?

Oli*_*cob 9 java spring spring-mvc

我有一个Spring AutoPopulatingList的问题.我的用例如下:管理可以访问应用程序的用户列表.

在GUI端,我使用自动填充字段来搜索并将用户添加到右侧的表中.用户也可以从表中删除.当GUI用户提交时,GUI动态地为用户构建一个包含字段的表单:selectedUsers [1],...,selectedUsers [N].

我的问题是我的"支持"bean中的AutoPopulatingList似乎只增长到256个项目,然后停止.所以我收到以下错误:

[myapp.web.controller.admin.form.ApplicationForm]:属性路径'selectedUsers [256]'中的列表索引无效; 嵌套异常是java.lang.IndexOutOfBoundsException:索引:256,大小:256

你知道是否有实际限制吗?如果是,有没有办法提高它?如果没有,你能想到解决这个问题的方法吗?

在此先感谢您的帮助

Oli*_*cob 20

好的,所以我在Spring的内部挖掘了一些,发现默认情况下,256是限制.

限制由BeanWrapperImpl#autoGrowCollectionLimit属性给出.Spring的WebDataBinder默认配置将此值设置为256.

提高此限制的正确方法是在控制器中定义@InitBinder注释方法:

@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.setAutoGrowCollectionLimit(1024);
}
Run Code Online (Sandbox Code Playgroud)

然后一切都按预期工作.

我没有尝试找到一种全局修改此限制的方法.

HTH