问题
由于Spring在接受前台传入的List时,就会出现256的IndexOutOfBoundsException异常
解决问题:表单提交,集合数量上限
统一处理(不建议)
/**
* @Description TODO
* @Author Admin
* @Version 1.0.1
*/
@Configuration
public class MyConfig {
@Autowired
public MyConfig(RequestMappingHandlerAdapter requestMappingHandlerAdapter) {
requestMappingHandlerAdapter.setWebBindingInitializer(new MyWebBindingInitializer());
}
/**
* 配置请求集合上限数量
* @author
* @version 2020-10-14
*/
public static class MyWebBindingInitializer extends ConfigurableWebBindingInitializer {
@Override
public void initBinder(WebDataBinder binder) {
super.initBinder(binder);
binder.setAutoGrowNestedPaths(true);
// 配置集合上限数量
binder.setAutoGrowCollectionLimit(5020);
}
}
}
会导致Lombok-Valid验证失效
在当前使用中处理(临时)
@InitBinder
public void initListBinder(WebDataBinder binder)
{
// 设置需要包裹的元素个数,默认为256
binder.setAutoGrowCollectionLimit(5120);
}
或者(建议)
不用表单提交,先转换成json字符串到后台 然后用jsonarray反序列和成集合对象也是可以的