中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決SpringMVC @RequestBody 用map接收請求參數的問題

發布時間:2021-07-21 13:43:55 來源:億速云 閱讀:523 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關如何解決SpringMVC @RequestBody 用map接收請求參數的問題,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一:遇到個跨域調用,因為傳個我的參數不定,所以需要通過map來接收參數并進行簽名驗證等操作

理所當然的寫出了下面的代碼,但是發現map里并沒有獲取到傳來的key-value值

@RequestMapping(value = "/callback", produces = "text/html;charset=UTF-8") 
@ResponseBody 
public String callback(@RequestBody Map<String, String> params) { 
 return null; 
}

之后我發現HttpServletRequest有一個getParameterMap方法好像很牛逼的樣子

@RequestMapping(value = "/callback", produces = "text/html;charset=UTF-8") 
@ResponseBody 
public String callback(HttpServletRequest httpServletRequest) { 
 Map<String, String> params = httpServletRequest.getParameterMap(); 
 return null; 
}

然而這么寫還是不對,因為這個方法其實是返回的一個Map<String, String[]>對象,而不是我想象中的簡單的Map<String, String>類型,這里是可以獲得正確的參數的,但是需要手動進行轉換,不可能是這種情況呀,一定有更好的解決辦法 “用@RequestParam試試”,然后就對了。。對了。。了。。

@RequestMapping(value = "/callback", produces = "text/html;charset=UTF-8") 
@ResponseBody 
public String callback(@RequestParam Map<String, String> params) { 
 return null; 
}

二:以前,一直以為在SpringMVC環境中,@RequestBody接收的是一個Json對象,一直在調試代碼都沒有成功,后來發現,其實 @RequestBody接收的是一個Json對象的字符串,而不是一個Json對象。然而在ajax請求往往傳的都是Json對象,后來發現用 JSON.stringify(data)的方式就能將對象變成字符串。

同時ajax請求的時候也要指定dataType: "json",contentType:"application/json" 這樣就可以輕易的將一個對象或者List傳到Java端,使用@RequestBody即可綁定對象或者List.

JavaScript 代碼:

<script type="text/javascript"> 
 $(document).ready(function(){ 
 var saveDataAry=[]; 
 var data1={"userName":"test","address":"gz"}; 
 var data2={"userName":"ququ","address":"gr"}; 
 saveDataAry.push(data1); 
 saveDataAry.push(data2);  
 $.ajax({ 
  type:"POST", 
  url:"user/saveUser", 
  dataType:"json", 
  contentType:"application/json",  
  data:JSON.stringify(saveData), 
  success:function(data){ 
     
  } 
  }); 
 }); 
</script>

Java代碼

@RequestMapping(value = "saveUser", method = {RequestMethod.POST }}) 
@ResponseBody 
public void saveUser(@RequestBody List<User> users) { 
 userService.batchSave(users); 
 }

關于“如何解決SpringMVC @RequestBody 用map接收請求參數的問題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿鲁科尔沁旗| 金山区| 遵义县| 嘉峪关市| 贵德县| 壤塘县| 渝北区| 桂东县| 樟树市| 土默特左旗| 河北省| 卓尼县| 横峰县| 石泉县| 营口市| 凤庆县| 乐亭县| 武平县| 保靖县| 延边| 法库县| 牡丹江市| 商河县| 龙口市| 桐乡市| 通化县| 保定市| 新竹县| 绥阳县| 资兴市| 南乐县| 卢湾区| 尼木县| 高密市| 福州市| 邯郸市| 苍梧县| 太谷县| 金阳县| 景宁| 齐齐哈尔市|