SpringMVC中出现 400 Bad Request 错误(用@ResponseBody处理aja

今天开发过程中,在SpringMVC中的Action中处理前台ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request,后台也不报错,400指的的是请求无效(请求有语法问题或者不能满足请求),调试了好长时间才解决了,,特意记录下来,并和大家一同分享一下。

出现这个错误的原因一般最常见的就是后台的实体类bean与前台穿过的类型不匹配,我的就是,因为的javabean中有定义了Date类型和int类型的成员变量,导致转化器在把json数据转化成bean时不能转化,其实如果用JSONObject.toBean方法转化时,这种情况也会报错的。

我的解决办法就是把实体类的javabean里边的类型都改成string类型了,在配置SQL语句时用to-date或者to_number转化的。

其实还可以在实体类中定义Date和int类型对应的字符串类型成员变量,这样前台的表单中field或者name与之对应上即可,这样也成功转成实体类了,不过转成之后,得在java中把它字符串类型的转成对应的Date或者int类型赋给相应的成员变量即可。

在就是还有一种方法就是在对应的实体类的对应的非字符串类型的变量的setter方法中传入string类型的,然后在里边用SimpleDateFormat或者Integer进行转化。

最后还有一种方法比较简单,就是实体类的日期属性上加@DateTimeFormat(pattern="yyyy-MM-dd")注解。

网上我看了一些有关问题,看网友们还有一些其他原因导致这个错误的,特总结归纳了一下方便网友们参考:

1、log4j的配置文件里错误将部分log打为Info级别所致2、传参数的时候,参数名使用了关键字“name”(我试了试,我的没报错正常)3、本来要返回json的却忘了加@RequestBody4、ajax请求的连接后边忘了加参数

5、前台传参时参数的顺序与后台实体类的各个属性的顺序不一致(我试了试,我的顺序改变无影响)

转载请注明—作者:Java我人生(陈磊兴)原文出处:

最后,认真看过的网友们,大神们,如有感觉我这个程序猿有哪个地方说的不对或者不妥或者你有很好的





业精于勤,荒于嬉;行成于思,毁于随。

SpringMVC中出现 400 Bad Request 错误(用@ResponseBody处理aja

相关文章:

你感兴趣的文章:

标签云: