数组类型参数传递:

  若一个请求中包含多个值,如:(test.action?tid=1&tid=2&tid=3),参数都是同一个,只是指定多个值,这样请求时后台会发生解析错误,应先使用 tradititonal 格式化

$.ajax({
type:"post",
url:"test.action",
data:{
tid:[1,2,3]
},
traditional:true,
……
});

  起初我认为traditional:true,可有可无,但是后来不用traditional的时候,发现后台无法获取selectUsers的值,那么可以肯定的是traditional默认值是false。
  当提交的参数是数组( {selectUsers:[value,value,value]} ),如果是false的话,则提交时会是"selectUsers[]=value&selectUsers[]=value";如果设置成true,则提交时会是"selectUsers=value&selectUsers=value",这样后台就能用String[] ids=request.getParameterValues("selectUsers"); 获取到值
  官方文档的解释如下:traditional   类型:Boolean
  如果你想要用传统的方式来序列化数据,那么就设置为 true。(底层原理其实就是设置param()方法的traditional参数为true
  Set this to true if you wish to use the traditional style of param serialization

1、前台jquery

var rows = $("#table-javascript").bootstrapTable("getSelections");
for (var i=0;i<rows.length;i++){
if(rows[i].orderStatus!="CANCELED"){
mif.showErrorMessageBox("只能删除已取消的订单!");
return;
}else {
ids.push(rows[i].id);
}
}
$.ajax({
url:url,
type:'post',
dataType:'json',
traditional: true,//注意,此处传数组到后台,必须设置为true
cache: false,
data:{
"ids":ids
},
success:function (obj) {
if(obj.success){
mif.showOkMessageBox("删除成功");
$table.bootstrapTable("refresh");
}
}

2、后台controller代码

@RequestMapping(value = "/batchDeleMemberPayOrder.do")
public Result<MemberPayOrder> batchDeleMemberPayOrder(@RequestParam List<Long> ids)

总结1:当ajax传的data数据是数组时,必须设置traditional参数,并为true,前台提交数据的 格式为"selectUsers=value&selectUsers=value" ,然后后台才可以通过List<Long> ids 接收到,

如果不设置,前台传过来的数据格式为"selectUsers[]=value&selectUsers[]=value",后台采用list解析会报错:报错如下,

"Failed to instantiate [java.util.List]: Specified class is an interface"

总结2:

  当ajax传的data数据是数组时,必须设置traditional参数,并为true,然后后台才可以通过request.getParameterValues()方法获取到数据,否则会解析出错。

最新文章

  1. 试用avalon2.0
  2. React Native系列文章
  3. 《微信小程序七日谈》- 第一天:人生若只如初见
  4. Linux场景下的辅助命令操作汇总
  5. ubantu 安装mysql
  6. HDU1565 方格取数(1)(状态压缩dp)
  7. cmake编译错误:“No CMAKE_C_COMPILER could be found”的原因
  8. 使用gfortran将数据写成Grads格式的代码示例
  9. ALLEN-XIE
  10. 动态字符串 Stringbuilder类
  11. wget一个小技巧
  12. openMP编程(上篇)之指令和锁
  13. xml注释快捷键
  14. js金钱转大写
  15. HttpServletResponse,HttpServletRequest详解
  16. 认识容器和Docker(一)
  17. redis配置文件说明
  18. Redis Sentinel 配置文件
  19. C#实现全局快捷键(系统热键)响应(转)
  20. svn 基础

热门文章

  1. New Date API介绍
  2. LoadRunner 技巧之 脚本设计
  3. Java学习之==&gt;JDBC
  4. window10安装Elasticsearch及可视化工具es header
  5. 【ABAP系列】SAP ABAP7.40新语法简介第二篇
  6. 从“int中提取高八位”开始的学习
  7. C++ 11的右值引用
  8. 图片下载&amp;&amp;非同源图片下载&amp;&amp;同源下载&amp;&amp;网页点击下载图片
  9. xc语言l博客作业03
  10. Maven - 配置setting.xml