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;
}
相關文章
相關標籤/搜索