(后端)SpringMVC提交数组时不能超过256个值(转)
项目遇到了这个错误,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个值(转)的更多相关文章
- js+springMVC 提交数组数据到后台
1.ajax 代码 var ids =new Array(); $.ajax({ type: "POST", url: "/user/downReport", ...
- WebApi用Post的方式提交Json时,获取不到值或不进对应方法的问题
又是一个通宵,终于搞明白了. 被WebApi坑得好惨. 之前用各种方法Post上来,有时可以读到结构,但没值,有时直接就是一个Null,有时连方法都没进就跑了,只是来控制器里看了一下…… 最后好友说还 ...
- springMVC 接收数组参数,mybatis 接收数组参数,mybatis批量插入/批量删除案例
案例是给一个用户赋予多个权限,多个权限用其对应的主键 id 为参数,组成了 一个id数组,传给springMVC,然后springMVC传给mybatis,然后mybatis批量插入.其实类似的场景还 ...
- curl提交数据时中文乱码
1.使用curl提交数据时中文乱码解决: <?php $testJSON=array('name'=>'中文字符串','value'=>'test'); foreach ( $tes ...
- jQuery的ajax()、post()方法提交数组,参数[] 问题
当用$.ajax()向后台提交参数时,如果参数中数组的话一般在后台会用List,或Integer[] 等数组对象进行接收. 比如: $.ajax({ type: "POST", ...
- Jquery Post提交时Content-Type的不同取值详解
四种常见的 POST 提交数据方式 我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范.规范把 HTTP 请求分为三个部分:状态行.请求头.消息主体.类似于下 ...
- POST提交数据时四种常见的数据格式
最近项目部署到新环境tomcat+mysql,想看看项目部署成功没有,就用soupui调对应接口开测试,soupui使用比较简单,给上接口地址,入参xml报文,把入参的media Type设置为app ...
- github提交代码时,报permission denied publickey
在像github提交代码时,报permission denied publickey. 查找了一下,可能是因为github的key失效了. 按照以下步骤,重新生成key. ssh-keygen 一路默 ...
- PhpStorm 集成 开源中国(oschina.net)的Git项目,提交SVN时注意事项
第一步:配置 git.exe File -> Default Settings -> Version Control -> Git -> Path go Git executa ...
随机推荐
- 利用vi编辑器创建和编辑正文文件(二)
末行模式下的命令 1. w:写文件,将编辑的内容保存到文件系统. 2. w!:如果只读文件,强制写入系统. 3. q!:退出vi,但文件内容修改的话,系统要提示是否 ...
- EL表达式jsp页面double小数点后保留两位
EL表达式jsp页面double小数点后保留两位,四舍五入 <fmt:formatNumber type="number" value="${member.logi ...
- ClickHouse之访问权限控制
研究ClickHouse也有几周了,今天来和大家说说ClickHouse的访问权限是怎么做的,ClickHouse不像MySQL那样,直接创建用户,而是需要在配置文件里面添加用户,一个简单的例子如下: ...
- 搭建企业级PPTP服务器
本文收录在企业项目实战系列 一.VPN 介绍 1.介绍 虚拟私人网络(英语:Virtual Private Network,缩写为VPN)是一种常用于连接中.大型企业或团体与团体间的私人网络的通讯方法 ...
- Hibernate学习(六)———— cascade(级联)和inverse关系详解
序言 写这篇文章之前,自己也查了很多的资料来搞清楚这两者的关系和各自所做的事情,但是百度一搜,大多数博文感觉说的云里雾里,可能博主自己清楚是怎么一回事,但是给一个不懂的人或者一知半解的人看的话,别人也 ...
- Java爬取网络博客文章
前言 近期本人在某云上购买了个人域名,本想着以后购买与服务器搭建自己的个人网站,由于需要筹备的太多,暂时先搁置了,想着先借用GitHub Pages搭建一个静态的站,搭建的过程其实也曲折,主要是域名地 ...
- SHELL脚本--shell数组基础
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 数组和变量的区别是:变量在内存中占用的空间是离散的,数组在内存 ...
- Hyperledger Fabric链码之二
上篇文章中我们介绍了链码的概念,本文中我们将介绍Fabric下链码的编写和测试.我们会通过一个简单例子的方式来阐述链码API的使用. 链码API 每一个链码程序都必须实现一个接口Chainco ...
- WCF、WebAPI、WCFREST、WebService之间的区别【转载】
在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下,你有很多的选择来构建一个HTTP Services.我分享一下我对 ...
- SET NOCOUNT { ON | OFF }
当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数) SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数. 当 SET NOC ...