ajax传递list集合


一:ajax传递List<String>类型的数据

js代码:

//声明list
var _list = [];
//放入string对象
for (var i = 0; i < 3; i++) {
	_list[i]="tom";
}

$.ajax({
	url : '/ajax/test',
	data : "list="+_list,
	type : "POST",
	success : function(data) {
		alert(data);
	}
});

java代码:

@RequestMapping(value="test",method=RequestMethod.POST)
@ResponseBody
public String ajaxList(@RequestParam("list")List<String> strList){
		
	for (String str : strList) {
		System.out.println(str);
	}
	return "OK";
}


二:ajax传递List<Obj>类型的数据

后台需要用到json解析工具,我选得是jackson

导入jackson依赖:

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

js代码:

//声明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 : '/ajax/test1',
	data : "list="+JSON.stringify(_list),
	type : "POST",
	success : function(data) {
		alert(data);
	}
});


java代码:

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


三:当ajax传递任何复杂参数时,后台可以直接从流中来读取数据进行解析

js代码:

//声明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 : '/querz/test',
	data : JSON.stringify(_list),//这里需要json化
	type : "POST",
	success : function(data) {
		alert(data);
	}
});

java代码:
@RequestMapping(value="test",method=RequestMethod.POST)
@ResponseBody
public String ajaxList(HttpServletRequest request) throws Exception{
	
	//从流中读取数据
	BufferedReader br = request.getReader();
	String str = "";
	StringBuffer sb = new StringBuffer();
	while((str = br.readLine()) != null){
		sb.append(str);
	}
		
	ObjectMapper mapper = new ObjectMapper();
	//使用jackson解析数据
	JavaType jt = mapper.getTypeFactory().constructParametricType(ArrayList.class, User.class);   
	List<User> list =  (List<User>)mapper.readValue(sb.toString(), jt); 
	System.out.println(list);
		
	return "OK";
}





  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值