项目遇到了这个错误,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. Java IO 导入导出Excel表格

    1.将excel导入到内存 1. 调用工作簿Workbook的静态方法getWorkbook(),获得工作簿Workbook对象 InputStream in = new FileInputStrea ...

  2. Nginx 搭建图片缓存服务器-转

    文章:https://waver.me/2019/04/11/Nginx-Cache-Server/ 参考: Nginx 配置详解Nginx 简易教程Nginx 配置总结

  3. Unity 5 使用Roslyn编译器支持C# 7

    Unity 2017可选使用新的Mono编译器,支持.NET 4.6和C# 6,解决bug的同时,代码优化更佳. Unity 5可以使用社区开源方案:https://bitbucket.org/ale ...

  4. salesforce零基础学习(九十二)使用Ant Migration Tool 实现Metadata迁移

    我们在做项目时经常会使用changeset作为部署工具,但是某些场景使用changeset会比较难操作,比如当我们在sandbox将apex class更改名字想要部署到生产的org或者其他环境的or ...

  5. [NewLife.XCode]数据层缓存(网站性能翻10倍)

    NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...

  6. SpringBoot快速引入第三方jar包

    工作中,我们常会用到第三方jar包,而这些jar包往往在maven仓库是搜不到的,下面推荐一种简单.快速的引入第三方依赖的方法: 比如第三方jar包在lib文件夹下,对pom.xml的配置如下: &l ...

  7. Go Web:数据存储(3)——gob对象序列化

    序列化持久存储gob 1.内存存储 2.CSV文件存储 3.gob序列化存储 本篇文章仍然接前面的文章:内存存储,主要介绍将博客文章数据序列化持久到文件中. encoding/gob包用于编码器和解码 ...

  8. Go Web:RESTful web service示例

    RESTful架构的简介 web服务的架构模式主要有2种:SOAP和REST.SOAP和REST都回答了同一个问题:如何访问web服务. SOAP风格的程序是功能驱动的,要借助xml来传递数据,明确表 ...

  9. 在Object-C中学习数据结构与算法之排序算法

    笔者在学习数据结构与算法时,尝试着将排序算法以动画的形式呈现出来更加方便理解记忆,本文配合Demo 在Object-C中学习数据结构与算法之排序算法阅读更佳. 目录 选择排序 冒泡排序 插入排序 快速 ...

  10. PAT之写出这个数

    读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10^100^. 输出格式:在一行内输出n的各位数字之和 ...