@RequestBody接收的是一個json對象

  一直覺得在SpringMVC環境中,@RequestBody接收的是一個json對象,調試代碼時沒有成功,後來才發現,其實 @RequestBody接收的是一個json字符串,而不是一個json對象。html

  解決方案:用JSON.stringify(data)的方式將對象變成字符串,同時ajax請求的時候也要指定dataType: "json",contentType:"application/json" ,這樣就能夠輕易的將一個對象傳到Java端,使用@RequestBody便可綁定對象。ajax

  contentType:默認爲"application/x-www-form-urlencoded",該默認值適合大多數應用場合。"application/json"代表參數是json字符串。json

  dataType: 預期服務器返回的數據類型。可用的類型以下:緩存

  • xml:返回XML文檔,可用JQuery處理;
  • html:返回純文本HTML信息;包含的script標籤會在插入DOM時執行;
  • script:返回純文本JavaScript代碼,不會自動緩存結果,除非設置了cache參數,注意在遠程請求時(不在同一個域下),全部post請求都將轉爲get請求;
  • json:返回JSON數據;
  • jsonp:JSONP格式。使用SONP形式調用函數時,例如myurl?callback=?,JQuery將自動替換後一個 「?」爲正確的函數名,以執行回調函數;
  • text:返回純文本字符串。

js代碼:服務器

$.ajax({ url : context + "/service/message/saveZbl",  data :JSON.stringify({"uuid":uuid,"tableName":tableName,"columnName":columnName}), dataType: "json", contentType:"application/json", type:"POST", success : function(data){ if(data > 0){ dialog.close(); dialog.remove(); return false; }else{ $.sticky( "保存失敗", { style : 'success', autoclose : 1000, position : 'center' }); } } });

Java代碼:app

@RequestMapping(value = "/saveZbl") @ResponseBody public int saveZbl(HttpServletRequest request,@RequestBody JcZntxZbb zbb) { return 1; }
相關文章
相關標籤/搜索