【JAVA开发中, FROM表单提交List集合时出现下标越界的解决方案】

本文介绍了解决前端Form表单提交时,后台接收List集合超过256条记录出现下标越界的问题。通过自定义InitBinderController类并重写setAutoGrowCollectionLimit方法,设置集合最大值为Integer.MAX_VALUE,实现数据量无限制接收。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一丶问题简述

在接口对接中, 因前端使用的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 即可, 例如:
在这里插入图片描述
目前解决方案就是这个, 全局配置还没测试成功, 等成功再跟大家分享, 大家知道如何配置, 也麻烦分享一下

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值