SpringBoot 前端提交参数绑定List下标越界,超过256,报数组越界异常
SpringBoot 前端提交参数绑定List下标越界,超过256,报数组越界异常
·
问题原因:
SpringMVC框架提交参数list时,springmvc默认只能接收到255个数据,当你前端页面传的数组数据长度大于255位的时候就会报错
解决方案1:在后台报错的controller类中添加如下方法,这样只对当前类的配置有效。
@InitBinder //类初始化是调用的方法注解
public void initBinder(WebDataBinder binder) {
//给这个controller配置接收list的长度1000,仅在这个controller有效
binder.setAutoGrowCollectionLimit(1000);
}
解决方案2:全局更改相应配置,针对所有controller的类都配置有效。
package com.common.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
/**
* 配置请求集合数组长度
*/
@Configuration
public class MyAppConfig {
@Autowired
public MyAppConfig(RequestMappingHandlerAdapter requestMappingHandlerAdapter) {
requestMappingHandlerAdapter.setWebBindingInitializer(new MyWebBindingInitializer());
}
/**
* 配置请求集合上限数量
*/
public static class MyWebBindingInitializer extends ConfigurableWebBindingInitializer {
@Override
public void initBinder(WebDataBinder binder) {
super.initBinder(binder);
binder.setAutoGrowNestedPaths(true);
//配置集合上限数量,配置接收list的长度1000
binder.setAutoGrowCollectionLimit(1000);
}
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)