项目遇到了这个错误,spring mvc 竟然还有这个漏洞.

org.springframework.beans.InvalidPropertyException: Invalid property 'detail[256]' of bean class [com.suning.asvp.mer.entity.InviteCooperationInfo]: Index of out of bounds in property path 'detail[256]'; nested exception is java.lang.IndexOutOfBoundsException: Index: , Size:
at org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:) ~[spring-beans-3.1..RELEASE.jar:3.1..RELEASE]
at org.springframework.beans.BeanWrapperImpl.getNestedBeanWrapper(BeanWrapperImpl.java:) ~[spring-beans-3.1..RELEASE.jar:3.1..RELEASE]
at org.springframework.beans.BeanWrapperImpl.getBeanWrapperForPropertyPath(BeanWrapperImpl.java:) ~[spring-beans-3.1..RELEASE.jar:3.1..RELEASE]
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:) ~[spring-beans-3.1..RELEASE.jar:3.1..RELEASE]
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:) ~[spring-beans-3.1..RELEASE.jar:3.1..RELEASE]
at org.springframework.validation.DataBinder.applyPropertyValues(DataBinder.java:) ~[spring-context-3.1..RELEASE.jar:3.1..RELEASE]
at org.springframework.validation.DataBinder.doBind(DataBinder.java:) ~[spring-context-3.1..RELEASE.jar:3.1..RELEASE]
at org.springframework.web.bind.WebDataBinder.doBind(WebDataBinder.java:) ~[spring-web-3.1..RELEASE.jar:3.1..RELEASE]
at org.springframework.web.bind.ServletRequestDataBinder.bind(ServletRequestDataBinder.java:) ~[spring-web-3.1..RELEASE.jar:3.1..RELEASE]

解决方案,在Action里重写SpringMVC限制的数组的方法:

@InitBinder
public void initBinder(WebDataBinder binder) {
// 设置List的最大长度
binder.setAutoGrowCollectionLimit();
}
这段代码我发现在项目在解决框架缺陷的时候已经在baseAction里重写了这个方法,在其他Action里是继承了baseAction,在开发环境里测试时没有问题的,但在测试环境里就不生效了,最后想到了两个解决方案,
  1.直接在自己的Action在去重写上面的方法
  .在前台把数组转换成Json串,传到后台把Json串转换成集合
方案一:其实上面的那段代码写在baseAction里就是为了在其他的Action里不用重写了,但是在测试环境不生效,很郁闷,只有先这样子了
方案二: JSON.stringifier(myObject); 但传到后台是报错,应为存在特殊字符
方案三:开发环境可以,测试环境不可以,会不会是其他问题,于是又让部署人员清除下部署包缓存,但是还是没用,可能就是两个环境存在差异吧
最后还是用方案一解决的,因为时间比较紧,项目快上线了,而且如果改成json串,改动点比较多,最后还是决定用方案一
以前都不知道这个问题,工作也是一个学习的过程

原文地址:https://blog.csdn.net/zeng_huabin/article/details/50839218

(后端)SpringMVC提交数组时不能超过256个值(转)的更多相关文章

  1. js+springMVC 提交数组数据到后台

    1.ajax 代码 var ids =new Array(); $.ajax({ type: "POST", url: "/user/downReport", ...

  2. WebApi用Post的方式提交Json时,获取不到值或不进对应方法的问题

    又是一个通宵,终于搞明白了. 被WebApi坑得好惨. 之前用各种方法Post上来,有时可以读到结构,但没值,有时直接就是一个Null,有时连方法都没进就跑了,只是来控制器里看了一下…… 最后好友说还 ...

  3. springMVC 接收数组参数,mybatis 接收数组参数,mybatis批量插入/批量删除案例

    案例是给一个用户赋予多个权限,多个权限用其对应的主键 id 为参数,组成了 一个id数组,传给springMVC,然后springMVC传给mybatis,然后mybatis批量插入.其实类似的场景还 ...

  4. curl提交数据时中文乱码

    1.使用curl提交数据时中文乱码解决: <?php $testJSON=array('name'=>'中文字符串','value'=>'test'); foreach ( $tes ...

  5. jQuery的ajax()、post()方法提交数组,参数[] 问题

    当用$.ajax()向后台提交参数时,如果参数中数组的话一般在后台会用List,或Integer[] 等数组对象进行接收. 比如: $.ajax({   type: "POST", ...

  6. Jquery Post提交时Content-Type的不同取值详解

    四种常见的 POST 提交数据方式 我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范.规范把 HTTP 请求分为三个部分:状态行.请求头.消息主体.类似于下 ...

  7. POST提交数据时四种常见的数据格式

    最近项目部署到新环境tomcat+mysql,想看看项目部署成功没有,就用soupui调对应接口开测试,soupui使用比较简单,给上接口地址,入参xml报文,把入参的media Type设置为app ...

  8. github提交代码时,报permission denied publickey

    在像github提交代码时,报permission denied publickey. 查找了一下,可能是因为github的key失效了. 按照以下步骤,重新生成key. ssh-keygen 一路默 ...

  9. PhpStorm 集成 开源中国(oschina.net)的Git项目,提交SVN时注意事项

    第一步:配置 git.exe File -> Default Settings -> Version Control -> Git -> Path go Git executa ...

随机推荐

  1. Jade是变体的HTML

    在这段HTML代码中,div 包含了一个 a 元素与一段没有标记包围的文本.若要用Jade表述这段HTML,div 元素和 a 元素都可以用前面所述的方法实现,但剩下的那个没有标记包围的文本就不能用前 ...

  2. Android--解析XML之DOM

    前言 前面已经介绍了Android平台下两种解析XML的方法,SAX和PULL,这两个均为事件驱动,以流的形式解析XML文档.现在介绍一种新的方式DOM方式解析XML. DOM是一种用于XML文档对象 ...

  3. shell变量定义与数组-1

    1.查看系统所有shell和默认shell 查看系统所有的shell: cat /etc/shells 查看系统默认shell: echo $SHELL 2.第一个shell脚本,打印字符串Hello ...

  4. java 容器 集合 用法

    Set,List,Map,Vector,ArrayList的区别 JAVA的容器---List,Map,Set Collection ├List │├LinkedList │├ArrayList │└ ...

  5. mysql连续聚合

    连续聚合是按时间顺序对有序数据进行聚合的操作. 在下面的救示例中将使用EmpOrders表,该表用于存放每位员工每月发生的订购数量. 运行如下 代码创建EmpOrders表并填充示例数据. CREAT ...

  6. [转]Redis配置文件详解

    本文转自http://blog.csdn.net/neubuffer/article/details/17003909 redis是一款开源的.高性能的键-值存储(key-value store),和 ...

  7. 2018 ACM-ICPC Asia Beijing Regional Contest (部分题解)

    摘要 本文主要给出了2018 ACM-ICPC Asia Beijing Regional Contest的部分题解,意即熟悉区域赛题型,保持比赛感觉. Jin Yong’s Wukong Ranki ...

  8. OJ:自己实现一个简单的 priority_queue

    Description 补足程序,使得下面程序输出结果是: 1.8 2.4 3.8 4.9 8.8 #include <iostream> #include <algorithm&g ...

  9. htmlUnit加持,网络小蜘蛛的超级进化

    前言 前段时间写了个小说线上采集阅读(猛戳这里:https://www.cnblogs.com/huanzi-qch/p/9817831.html),当我们去采集起点网的小说目录时发现目录数据没有在h ...

  10. Spark内存管理机制

    Spark内存管理机制 Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色.理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行 ...