数组类型参数传递问题:$.ajax传递数组的traditional参数传递必须true

转载自:https://www.cnblogs.com/goloving/p/7676811.html

数组类型参数传递:

  若一个请求中包含多个值,如:(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

function deleteAll() {var selectUsers=new Array();//var selectUsers = null;$(":checkbox[name='userID']").each(function() {if ($(this).prop("checked"))selectUsers.push($(this).val());//selectUsers += "," + $(this).val();});$.ajax({async : false,traditional: true,type:"post",url:"elecUserAction_delete.do",data:{selectUsers:selectUsers},success:function(responsText){if(responsText=="1"){alert("删除成功");}}});
}

2、后台Action代码

public String delete(){String[] ids=request.getParameterValues("selectUsers");  System.out.println(ids.toString());PrintWriter out = null;out.write("1");return home();
}

总结:

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

数组类型参数传递问题:$.ajax传递数组的traditional参数传递必须true相关推荐

  1. ajax前端传数组后端接收,前端AJAX传递数组给Springmvc接收处理

    前端传递数组后端(Spring)来接收并处理: 测试页面 function ccc() { var btn = document.getElementById("btn"); $. ...

  2. php ajax传递数组,ajax怎样传递数组到后台

    这次给大家带来ajax怎样传递数组到后台,ajax传递数组到后台的注意事项有哪些,下面就是实战案例,一起来看一下. 前言 我们在使用ajax异步的提交多选框得到需要操作的对象的id,这时我们可以把每一 ...

  3. ajax传递数组 用struts2来接收

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/a78460750/article/de ...

  4. pythonjson构建二维数组_python后台获取ajax传递的二维数组,保持原有数据结构不变...

    python后台获取ajax传递的二维数组,保持原有数据结构不变. 前台主要程序: arr_data = [[1,2,3],[4,5,6]];//创建二维数组 var json_data = JSON ...

  5. ajax传递数组怎么传?ajax数组传递

    在我们平时的开发中,经常会需要用到ajax,关于ajax是什么,又该如何传递参数,相信通过上几篇文章你们已经有所了解.但是,ajax中要如何传递数组你们又知道吗?今天我们就来聊一聊ajax中该如何传递 ...

  6. ajax传递数组到后台时为空,ajax传递数组,后台接收为null解决方法

    traditional:true,加上这个就好,默认为false,即允许深度序列化参数,但是servlet api不支持,所有设为true阻止就好了. $.ajax({ type:'post', ur ...

  7. Ajax传递数组对象

    Ajax传递数组对象 一.JS部分写法 1.JSON.stringify(submitMainComponent.billSubmit) 转json 2.contentType: 'applicati ...

  8. php ajax向后台怎么传数组,利用ajax传递数组及后台接收的方法详解

    这篇文章主要给大家介绍了关于利用ajax传递数组及后台接收的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们一起来学习学习吧. 前言 我们在使用ajax异步的提交多选框得到需要 ...

  9. ajax里数组添加数据,小笔记(一):ajax传递数组及将ajax返回数据赋值

    当使用ajax传递数据时,有可能传递多个数据,这是使用以下方法传递数据就会显得数据过多且混杂 $.ajax({ type:'post', url:url, data:{data:data,conten ...

最新文章

  1. 水稻微生物组时间序列分析精讲1-模式图与主坐标轴分析
  2. Python中urllib2总结
  3. module._init_() takes at most 2 arguments (3 given) (scrapy tutorial w/ xpath)
  4. P3373 【模板】线段树 2 (未完待续)
  5. mysql 只导数据不含表结构
  6. one or more of the ports are invalid. Open the server editor and correct the invalid ports
  7. 关于 $ Super $ $ 和 $ Sub $ $ 的用法
  8. win8: 清除iframe的缓存
  9. 如何从一个 C# 的 dump 中挖到机器相关的信息?
  10. hibernate工厂模式_Hibernate锁定模式–乐观锁定模式如何工作
  11. 年底送书活动:送出6本技术书籍,价值372元!
  12. 如何拉取k8s镜像_K8s 从懵圈到熟练 – 镜像拉取这件小事
  13. 多用户企业文件管理系统源码_设计项目管理系统,可以,并有必要
  14. 用 Python 分析了 10000 场吃鸡数据,原来吃鸡要这么玩!
  15. 数据库建表设计规范及原则
  16. 学弟拿到了大厂推荐算法岗offer,分享一波他的经验
  17. BZOJ 2463: [中山市选2009]谁能赢呢?
  18. 2019.11软考软件设计师归来心得体会及复习备考指南
  19. jQuery(一个JavaScript库)
  20. PSENet(Shape Robust Text Detection with Progressive Scale Expansion Network)论文详解

热门文章

  1. gta5怎么设置画质最好_《GTA5》如何改善画质 提高帧速率画质的设置方法介绍
  2. 手把手带你设计接口自动化测试用例:建立数据库实例和测试用例表
  3. openlayers加载动态gif及css样式
  4. 树莓派 自动发送公网IP至指定邮箱
  5. 如何下载PDF论文?
  6. Linux内核--五大子系统
  7. 骁龙888功耗过高已被证实,骁龙870或成为手机企业的新选择
  8. 片袖原型制图_合体连身袖原型造型原理和制图步骤
  9. MySQL大全(一)
  10. EOS启动超时,无法启动