有關參數傳遞有幾種 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; }