SpringMVC绑定ajax传递json数据到pojo对象错误(400 Bad Request)
来源:互联网 发布:林心如人设崩塌知乎 编辑:程序博客网 时间:2024/05/16 18:14
问题如标题所述,ajax向SpringMVC Controller传递JSON数据,遇到了错误“Failed to load resource: the server responded with a status of 400 (Bad Request)”,该错误为前端报错,JSON数据压根没有被Controller接收。因为后端想通过接收JSON数据直接转换为pojo对象,进行pojo绑定。
经过一晚上的调试,最后定位问题于后台Controller无法转换接收到的JSON数据。进一步寻找解决方案,定位到了问题原因:pojo类中存在Date类型成员变量,转换器无法将Date类型成员变量正确转换。通过使用没有Data类型数据成员的pojo类进行测试,发现确实是问题的真正原因。
1. 解决方案
实体类中加日期格式化注解
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date algorithmTime;
进一步,在相对应的pojo类中增添默认构造函数,没有这一步可能无法解决问题,所以该步骤极为重要。可能是由于在转换器转换过程中要调用默认构造函数来构造pojo对象。
public class Algorithm { //默认构造函数 public Algorithm(){ }}
2. SpringMVC接收ajax的JSON数据,后端绑定pojo对象
前端ajax:
var alg={ algorithmName:algName, algorithmDescribe:algDesc, classId:classId, className:className }; $.ajax({ type:'POST', url:'algorithm/add', data:JSON.stringify(alg), dataType:'json', contentType:'application/json; charset=utf-8', async:true, success:function(data){ console.log(data['algInfo']); } });
Controller处理:
@RequestMapping(value = "/algorithm/add",method = RequestMethod.POST,consumes = "application/json")@ResponseBodypublic String addAlgorithm(@RequestBody Algorithm algorithm){ /** * 处理步骤 **/ Map<String,String> map=new HashMap<String, String>(); map.put("algInfo",algorithm.toString()); return map;}
该问题还有许多解决的办法,但是这个方法是最简单的。在解决这个问题的过程中,《SpringMVC中出现”400 Bad Request”错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法》和《SpringMVC日期类型转换问题三大处理方法归纳》这两篇博文和博文的评论给了我非常大的帮助,感谢作者,其他的解决方法也可以从这两篇博文中找到。
参考:
- http://blog.csdn.net/chenleixing/article/details/43740759
- http://blog.csdn.net/chenleixing/article/details/45190371
- @InitBinder 用法
- SpringMVC中的参数绑定总结
- SpringMVC Ajax 获取参数的方法
0 0
- SpringMVC绑定ajax传递json数据到pojo对象错误(400 Bad Request)
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC 400 Bad Request 错误解决
- springMVC报400 Bad Request错误
- SpringMVC中出现" 400 Bad Request "错误
- Ajax请求返回400 bad request错误
- Ajax post 报400 bad request错误
- $.ajax请求报400 bad request错误
- ajax json 调用WCF,服务端FaultException导致 http 400 bad request错误的解决方式
- SpringMvc+ajax 实现json格式数据传递
- SpringMvc+ajax 实现json格式数据传递
- SpringMvc+ajax 实现json格式数据传递
- SpringMvc+ajax 实现json格式数据传递
- [代码笔记] python 之 mysql操作(CRUD)
- 洞悉特性、属性和样式
- React-Native-Android-Studio整合开发+环境配置+官方实例
- WebService请求服务器,4.0系统出现java java.lang.NoClassDefFoundError错误
- RatingBar设置不可点击解决办法
- SpringMVC绑定ajax传递json数据到pojo对象错误(400 Bad Request)
- lintcode,等价二叉树
- C/C++中extern关键字详解
- 一维、二维正态分布概率密度曲线的绘制
- Gpio模拟i2c总线对24c02进行读写
- IOS开发学习过程问题点记录
- Java_正则表达式
- Linux并发服务器编程之IO多路复用
- 算法总结