一丶问题简述
在接口对接中, 因前端使用的From表单提交方式, 后台接收为List集合, 在数据量大于256条时, 出现下标越界的问题, 如下图所示:

二丶原因表述
Spring mvc框架封装中, 集合定义长度为: 256, 如图所示:

三丶解决方案
1丶自定义一个InitBinderController类, 重setAutoGrowCollectionLimit方法, 代码如下:
package com.ekxtech.web.common.config;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
/**
* @tagging: 解决前后端from表单交互List集合限制长度256的问题
* @author: seven_Change
* @date: 2022/08/12
*/
public class InitBinderController {
@InitBinder
protected void initBinder(WebDataBinder binder) {
binder.setAutoGrowNestedPaths(true);
binder.setAutoGrowCollectionLimit(Integer.MAX_VALUE);
}
}
2丶在所需要的接口类中去继承InitBinderController 即可, 例如:

目前解决方案就是这个, 全局配置还没测试成功, 等成功再跟大家分享, 大家知道如何配置, 也麻烦分享一下
本文介绍了解决前端Form表单提交时,后台接收List集合超过256条记录出现下标越界的问题。通过自定义InitBinderController类并重写setAutoGrowCollectionLimit方法,设置集合最大值为Integer.MAX_VALUE,实现数据量无限制接收。
1398

被折叠的 条评论
为什么被折叠?



