SpringMVC 使用对象接收参数

今天使用对象形式接收参数的时候,不是提示400就是提示415,各种郁闷,之前自己也遇到过但是记不起来了。花了点时间,总算解决了,还是赶紧mark一下吧。
问题:
1 页面ajax请求提示400;
2 ajax提示415;
解决:
1 需要看你的对象是否有无参构造方法,如果没有的话,请求后台会提示400.
2 首先,springmvc这里接收的不是json对象,而是一个json的字符串,所以请求传的应该是通过JSON.stringify(data)处理过的数据。其次,要在你的ajax添加一个contentType: ‘application/json’,指明类型为json。最后,要在你接收参数的对象前添加一个@RequestBody的注解。
ok,这就应该可以了。另附上一段例子。
页面:
···
var data = {};
data.name = ‘我是专题’;
data.type = 3;
data.storyList = [{“id”:’471163085038686208’,”type”:44}]

 $.ajax({
        url : "/storylist/createStorylistSubjectNew.do",
        type : "POST",
        data : JSON.stringify(data), //直接用JSON对象
        contentType: 'application/json',
        success : function(result) {
            console.log('测试。。。');
            console.log(result);
        }
 });

···
后台:
···
@RequestMapping(value=”/createStorylistSubjectNew.do”,method = RequestMethod.POST)
@ResponseBody
public String createStorylistSubjectNew(@RequestBody StoryListInfo storyListInfo){
String result=null;
try{
result=storyListService.createStorylistSubjectNew(storyListInfo);
}catch(Exception ex){
ex.printStackTrace();
}
LOG.info(result);
return result;
}
···

补充:请求提示400,经过一段时间的使用发现,和接受对象是否有无参构造没有关系,抱歉误导大家了,特此纠正。真实原因和自己组装的参数有关,参数组装的不正确,导致springmvc解析时异常,最后提示400。我这里当时组装对象中的List时参数拼错了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值