问题原因:

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);
        }
    }
}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐