为什么使用@InitBinder设置autoGrowCollectionLimit不起作用?

时间:2018-01-22 06:52:42

标签: spring

在AbstractNestablePropertyAccessor类的growCollectionIfNecessary方法的运行时,autoGrowCollectionLimit仍然是256。

    private void growCollectionIfNecessary(Collection<Object> collection, int index, String name,
        PropertyHandler ph, int nestingLevel) {

    if (!isAutoGrowNestedPaths()) {
        return;
    }
    int size = collection.size();
    if (index >= size && index < this.autoGrowCollectionLimit) {
        Class<?> elementType = ph.getResolvableType().getNested(nestingLevel).asCollection().resolveGeneric();
        if (elementType != null) {
            for (int i = collection.size(); i < index + 1; i++) {
                collection.add(newValue(elementType, null, name));
            }
        }
    }
}

在控制器中  使用

@InitBinder
protected void initBinder(WebDataBinder binder) {
        binder.setAutoGrowCollectionLimit(Integer.MAX_VALUE);
}

我的spring框架版本是4.3.2  我想知道设置autoGrowCollectionLimit值的正确方法是什么

1 个答案:

答案 0 :(得分:0)

我将方法更改为initListBinder,这是工作