在SpringMVC中的Action中处理前台ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request,后台也不报错,400指的的是请求无效(请求有语法问题或者不能满足请求)
出现这个错误的原因一般最常见的就是后台的实体类bean与前台穿过的类型不匹配,如:javabean中定义的Date类型和int类型的成员变量,导致转化器不能把json数据转化成bean,其实如果用JSONObject.toBean方法转化时,这种情况也会报错的。
- 把实体类javabean里的类型都改成string类型,在配置SQL语句时用数据库函数
to_date
或者to_number
转化,Java中用For format=new SimpleDateFormat("yyyy-MM-dd")
,format.parse()
来转换。 - 在实体类的日期属性上加
@DateTimeFormat(pattern="yyyy-MM-dd")
注解,大部分情况成功。如果不成功:前台传过的日期为json形式而非字符串形式,如:$("#id").val()
获取日期直接传给后台是不行的,需要在前台:new Date(stringDate).parseJSON()或 $.toJSON(new Date(stringdate))传给后台