@RequestBody接收的是一個json對象


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

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

  contentType:默認為"application/x-www-form-urlencoded",該默認值適合大多數應用場合。"application/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代碼:

@RequestMapping(value = "/saveZbl") @ResponseBody public int saveZbl(HttpServletRequest request,@RequestBody JcZntxZbb zbb) { return 1; }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM