传普通数据没太大问题,就是传json格式的数据在后台转化为javaBean有点问题
需求:前台传json格式的数据,后台用@RequestBody转换为对应的javaBean,
1:首先json里的数据应该对应javaBean里的属性,否则肯定会报错,举个栗子
{"USER_ID":leader,"Users":users};
上面这个格式的数据,在对应的JavaBean里一定要有String USER_ID;String Users;这两个属性,就是包含的关系
2:出现415/400问题的原因是前台传到后台或者后台传到前台的数据格式不正确,格式应该都为application/json(前台接受的都为json,text不讨论)
解决方法:
first:首先保证这里没有配错
springmvc.xml
<!-- 启用spring mvc 注解--> <mvc:annotation-driven> <!-- 启动JSON格式的配置 --> <mvc:message-converters> <!-- 这里也可以自己定制class --> <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>application/json</value> //服务器支持json格式的数据,后台传到前台再次设置 </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
second:
var saveData ={"USER_ID":leader,"Users":users}; $.ajax({ type : "POST", url : "XXXX", data : JSON.stringify(saveData), contentType : "application/json", //发送至服务器的类型 dataType : "json", //预期服务器返回类型 success : function(data) { alert(data.msg); },error:function(data){ alert(data.msg); } });
third:
@RequestMapping(value ={ "/xxx"}, method = { RequestMethod.POST}) @ResponseBody public String save(@RequestBody JavaBean类型 aaa) throws Exception { log.info("ajax");
int i=xxxService.xxx(aaa); String massage; if(i>0){ return "{\"msg\":\"success\"}"; //json格式 }else{ return "{\"msg\":\"fail\"}"; } }
标红的比较关键