国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Java > 正文

快速解決SpringMVC @RequestBody 用map接收請求參數(shù)的問題

2024-07-14 08:41:57
字體:
供稿:網(wǎng)友

一:遇到個跨域調(diào)用,因?yàn)閭鱾€我的參數(shù)不定,所以需要通過map來接收參數(shù)并進(jìn)行簽名驗(yàn)證等操作

理所當(dāng)然的寫出了下面的代碼,但是發(fā)現(xiàn)map里并沒有獲取到傳來的key-value值

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

之后我發(fā)現(xiàn)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; } 

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

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

二:以前,一直以為在SpringMVC環(huán)境中,@RequestBody接收的是一個Json對象,一直在調(diào)試代碼都沒有成功,后來發(fā)現(xiàn),其實(shí) @RequestBody接收的是一個Json對象的字符串,而不是一個Json對象。然而在ajax請求往往傳的都是Json對象,后來發(fā)現(xiàn)用 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接收請求參數(shù)的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阜平县| 康平县| 清徐县| 深泽县| 广南县| 竹溪县| 白山市| 博兴县| 喀喇| 嘉鱼县| 通州市| 溆浦县| 广平县| 社会| 辽宁省| 桃园市| 疏附县| 万山特区| 冕宁县| 新密市| 大安市| 东源县| 迁西县| 葫芦岛市| 兴仁县| 定远县| 华宁县| 陕西省| 庄浪县| 赤峰市| 上高县| 当涂县| 文登市| 新化县| 玉环县| 尉犁县| 黔南| 安徽省| 宜昌市| 钦州市| 金阳县|