没有合适的资源?快使用搜索试试~ 我知道了~
快速解决SpringMVC @RequestBody 用map接收请求参数的问题
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
17 下载量 179 浏览量
2020-08-27
02:17:39
上传
评论
收藏 47KB PDF 举报
温馨提示
试读
1页
今天小编就为大家分享快速解决SpringMVC @RequestBody 用map接收请求参数的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
资源推荐
资源详情
资源评论
快速解决快速解决SpringMVC @RequestBody 用用map接收请求参数的接收请求参数的
问题问题
今天小编就为大家分享快速解决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接收请求参数的问题就是小编分享给大家的全部内容了,希望能给大家
一个参考,也希望大家多多支持我们。
资源评论
weixin_38703277
- 粉丝: 6
- 资源: 915
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功