Spring AutoPopulatingList最大大小?
问题内容:
我对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
您是否知道实际限制?如果是,有没有办法提高它?如果没有,您能想到解决此问题的方法吗?
在此先感谢您的帮助
问题答案:
好的,所以我进一步研究了Spring的内部结构,发现默认情况下256是限制。
该限制由BeanWrapperImpl#autoGrowCollectionLimit属性指定。Spring的WebDataBinder默认配置将此设置为256。
提高此限制的正确方法是在控制器中定义一个@InitBinder注释方法:
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.setAutoGrowCollectionLimit(1024);
}
然后一切都会按预期进行。
我没有尝试找到一种全局修改此限制的方法。
高温超导