引言

JQuery Ajax 发送请求参数一般都是基本类型,比如 String、int;那么,请求参数如果是 List 集合应该如何处理呢?

情况一:Aajx 发送 List 类型请求参数

举例如下:

前端代码
//声明list
var list = []; //放入string对象
for (var i = 0; i < 3; i++) {
list[i]="tom";
} $.ajax({
url : 'test',
data : "list":list,
type : "POST",
success : function(data) {
alert(data);
}
});
后端代码
@RequestMapping("test")
@ResponseBody
public String ajaxList(List<String> list){
for (String str : list) {
System.out.println(str);
}
return "OK";
}

可以看出,List 类型请求参数与基本类型请求参数没什么区别,无非就是服务器请求参数绑定时类型要写 List 。

情况二:Ajax 发送 List 类型请求参数

这种情况就要麻烦一些了,SpringMVC 无法直接绑定复杂的请求参数类型,需要用到第三方 json 解析工具,比如 jackson 。

maven 导入 jackson 依赖包

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.3</version>
</dependency>

前端代码
//声明list
var list = [];
//创建两个user对象
var a= {};
a.name="tom";
a.age=23;
a.city="上海";
var b = {};
b.name="jack";
b.age=25;
a.city="安徽";
//将user放入_list
list.push(a);
list.push(b); $.ajax({
url : 'test',
data : "list":JSON.stringify(list),
type : "POST",
success : function(data) {
alert(data);
}
});

JSON.stringify(list) 代码的作用是将 js 对象转换为 json 格式的字符串。这样,无论 js 对象多复杂,最终发送给服务器的请求参数就是一个 json 格式字符串罢了。

后端代码
@RequestMapping("test)
@ResponseBody
public String ajaxList(String list) throws Exception{ //jackson对象
ObjectMapper mapper = new ObjectMapper(); //使用jackson将json转为List<User>
JavaType jt = mapper.getTypeFactory().constructParametricType(ArrayList.class, User.class); List<User> userList= (List<User>)mapper.readValue(list, jt); return "OK";
}

以上代码参数绑定的是 String 类型,因为 ajax 发送的就是 String 类型。接着,就是使用 jackson 工具将 json 字符串转换为 Java 对象即可。

JQuery Ajax 请求参数 List 集合处理的更多相关文章

  1. jquery ajax 请求参数详细说明 及 实例

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...

  2. Jquery Datatables 请求参数及接收参数处理

    Jquery Datatables 请求参数及接收参数处理 /** * Created by wb-wuyifu on 2016/8/9. */ /** * Created by wb-wuyifu ...

  3. jquery ajax请求方式与提示用户正在处理请稍等,等待数据返回时loading的显示

    1.jquery ajax请求方式与提示用户正在处理请稍等 为了提高用户体验度,我们通常会给出 “正在处理,请稍等!”诸如此类的提示.我们可通过设置$.ajax()下的参数beforeSend()来实 ...

  4. ASP.NET jquery ajax传递参数

    第一种:GET传递 前台 ajax   GET 传递 :即在请求的地址后面加上参数,URL地址长度有显示,安全性低 后台接收:Request.QueryString[“参数名字”]! 例如: func ...

  5. jquery.ajax请求aspx和ashx的异同 Jquery Ajax调用aspx页面方法

    1.jquery.ajax请求aspx 请求aspx的静态方法要注意一下问题: (1)aspx的后台方法必须静态,而且添加webmethod特性 (2)在ajax方法中contentType必须是“a ...

  6. 原生js,jquery ajax请求以及jsonp的调用

    ajax    是用来处理前后端交互的技术,可以改善用户体验,其本质是    XMLHttpRequest,异步访问服务器并发送请求数据,服务器返回响应的数据,以页面无刷新的效果改变页面中的局部内容  ...

  7. 二、jQuery Ajax请求

    一.Ajax请求 1.jQuery Ajax请求 let ajaxTimeOut = $.ajax({ //将网络请求事件赋值给变量ajaxTimeOut url: "/api_v1.1/a ...

  8. jQuery ajax 请求php遍历json数组到table中

    html代码(test.html),js在html底部 <!DOCTYPE html> <html lang="en"> <head> < ...

  9. jquery Ajax请求示例,jquery Ajax基本请求方法示例

    jquery Ajax请求示例,jquery Ajax基本请求方法示例 ================================ ©Copyright 蕃薯耀 2018年5月7日 https: ...

随机推荐

  1. Sqlmap的基础用法(禁止用于非法用途,测试请自己搭建靶机)

    禁止用于非法用途,测试与学习请自己搭建靶机 sqlmap -r http.txt  #http.txt是我们抓取的http的请求包 sqlmap -r http.txt -p username  #指 ...

  2. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之替换logo-13

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之替换logo-13 欢迎加QQ群:1026880196 进行交流学习 替换 openstack das ...

  3. Day10_53_Collections.synchronizedList() 将Arraylist集合转换为线程安全的集合

    将Arraylist集合转换为线程安全的集合 import java.util.ArrayList; import java.util.Collections; import java.util.Li ...

  4. 【Java注解】@PostConstruct 注解相关

    不多逼逼,直接看注解上面的文档, @PostConsturct PostConstruct注释用于需要执行的方法在依赖注入完成后执行任何初始化.这个方法必须在类投入服务之前调用. 这个所有支持依赖关系 ...

  5. APK程序Dex文件无源码调试方法讨论

    那些不靠谱的工具 先来说说那些不靠谱的工具,就是今天吭了我小半天的各种工具,看官上坐,待我细细道来.IDA pro IDA pro6.6之后加入了dex动态调试功能,一时间普天同庆.喜大普奔.兴奋之后 ...

  6. POJ1149 最大流经典建图PIG

    题意:       有一个人,他有m个猪圈,每个猪圈里都有一定数量的猪,但是他没有钥匙,然后依次来了n个顾客,每个顾客都有一些钥匙,还有他要卖猪的数量,每个顾客来的时候主人用顾客的钥匙打开相应的门,可 ...

  7. php、jsp、asp和aspx的区别

    目录 PHP JSP ASP ASP.NET PHP PHP是一种跨平台的服务器端的嵌入式脚本语言.它大量地借用C.Java 和 Perl 语言的语法,并耦合PHP自己的特性,使WEB开发者能够快速地 ...

  8. nodejs-安装/helloworld/npm

    安装---------------------------------------------------------------- http://nodejs.cn/download/ 完成之后确定 ...

  9. java之Map的使用

    Map的实现类有很多,其中较为常见的有HashMap,HashTable,LinkedHashMap,TreeMap,下面分别对这几个类进行简单的分析: 1.HashMap HashMap的结构数组+ ...

  10. Jedis基础详解

    Jedis 使用Java来操作Redis 什么是Jedis 是Redis官方推荐的Java操作Redis中间件, 如果你要使用Java操作Redis, 那么就该对jedis熟悉 测试 导入对应的依赖 ...