jquery ajax 向spring MVC controller中传值并接受及解析返回值

有关参数传递有几种 1.几个单独的基本类型传参。 基本类型的传参,就是直接在Controller的方法中写几个对应的参数。 ajax请求直接肯定dataType:"json",就能够传递了。 2.controller中的参数是实体bean,bean中的属性都是基本数据类型 这个时候后台也是直接写在controller方法的参数中。 在ajax中须要设置dataType:"json",可是不可以设置contentType: "application/json; charset=utf-8", 若是设置contentType,则后台没法接收到参数。ajax传递参数的时候须要和实体bean中的名称一致,不然没有办法进行赋值。 3.controller中的参数是实体bean,bean中的属性有数组或者集合; 此时在后台接收参数的时候须要在参数前加一个@ResponseBody注解,这个注解不能省略,不然没法进行值的接收。 而在前台方面ajax的参数在传递以前,须要JSON.stringify(params),将参数进行一个json序列化, 而后dataType:"json",还须要contentType: "application/json; charset=utf-8",这样最后才能参数传递成功。ajax

var params = {};
params.nums = [];
params.id = $("#id").val();//parmas.参数名 注意与实体bean参数名称相同
var prices = document.getElementsByName("prices");//prices 是name="prices"一组input标签
for (var i = 0; i < prices.length; i++) {
	params.nums[i] =  prices[i].value;
} 
$.ajax({ 
	type: "POST", 
	url: "price/add", 
	data:JSON.stringify(params),//json序列化 
	datatype:"json", //此处不能省略 
	contentType: "application/json; charset=utf-8",//此处不能省略 
	success:function(data){ 
		alert(data); 
	}, 
	error:function(data){
		alert(data)
	} 
});

后台接收:json

@RequestMapping("add")
@ResponseBody//此处不能省略 不然ajax没法解析返回值
public Map<String,Object> add(@RequestBody DataVo dataVo){//@RequestBody注解不能省略,不然没法接值
	Map<String,Object> resultMap = new HashMap<String, Object>();
	//业务逻辑处理
	return resultMap;
}
相关文章
相关标签/搜索