热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

解决spring4.x版本的springmvc中提交数组时超过256个值报错问题

首先声明下我的环境,spring版本是4.3.2,框架是springmvc+mybatis,前端是easyui.今天遇到个诡异的问题,就是前台在保存的时候,后台报错,提示类似如下信息:

  首先声明下我的环境,spring版本是4.3.2,框架是springmvc+mybatis,前端是easyui.

今天遇到个诡异的问题,就是前台在保存的时候,后台报错,提示类似如下信息:

org.springframework.beans.InvalidPropertyException : Invalid property 'list[256]' of bean class [com.AppController]: Index of out of bounds in property path 'list[256]'; nested exception is java.lang.IndexOutOfBoundsException: Index: 256, Size: 256 


之前也遇到过类似的问题,但是前台是可以保存的,只不过保存的内容被截取了,只保存了部分数据,当时处理的方式是修改tomcat的server.xml的配置,

原配置:


改后的配置:

    compression="on" executor="tomcatThreadPool" URIEncoding="utf-8"
    compressableMimeType="text/html,text/xml,text/Javascript,text/css,text/plain"
    noCompressiOnUserAgents="gozilla, traviata" compressiOnMinSize="50" maxParameterCount="1000000"/>


当发现问题时,于是去查看tomcat的配置,结果发现已经添加了这些配置,但是仍旧不行。细想一下,两者是有区别的,改tomcat配置的情况,不是保存不了,是保存成功,但是保存不完全,而现在的问题是直接保存不了。

后来发现现在的程序中spring用的是4.3.2版本,而之前是3.0.5。然后去网上搜了很多资料,都说使用binder.setAutoGrowCollectionLimit(Integer.MAX_VALUE); 解决,但是setAutoGrowCollectionLimit这个方法貌似在spring4.x版本提供的,也就是说3.x版本没有这个方法,所以对于spring3.x版本,springmvc应该不会存在这个问题。

到了spring4.x这个值的默认值是256,所以需要重写这个方法,具体步骤如下:

1.添加如下类:

public class MyWebBindingInitializer implements WebBindingInitializer {    
    @Override  
    public void initBinder(WebDataBinder binder, WebRequest request) {   
    binder.setAutoGrowCollectionLimit(Integer.MAX_VALUE);
        binder.registerCustomEditor(Date.class, new DateConvertPropertyEditor());  
    }  
}  

2.在dispatch-servlet.xml中注入bean


       
       
     


就这么简单的搞定了。

另外需要注意一个坑,就是spring4.3.5版本之前,

binder.setAutoGrowCollectionLimit(Integer.MAX_VALUE);
binder.registerCustomEditor(Date.class, new DateConvertPropertyEditor()); 

两句的顺序不能颠倒,颠倒之后,setAutoGrowCollectionLimit不起作用。这个在spring4.3.5版本中修复了。


推荐阅读
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • Python开源库和第三方包的常用框架及库
    本文介绍了Python开源库和第三方包中常用的框架和库,包括Django、CubicWeb等。同时还整理了GitHub中最受欢迎的15个Python开源框架,涵盖了事件I/O、OLAP、Web开发、高性能网络通信、测试和爬虫等领域。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • 本文讨论了在ASP中创建RazorFunctions.cshtml文件时出现的问题,即ASP.global_asax不存在于命名空间ASP中。文章提供了解决该问题的代码示例,并详细解释了代码中涉及的关键概念,如HttpContext、Request和RouteData等。通过阅读本文,读者可以了解如何解决该问题并理解相关的ASP概念。 ... [详细]
author-avatar
mobiledu2502920087
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有