今天遇到的表单提交时一直报错,而且debug进不去controller,在花了大把时间后还是没解决,问了老司机后才找到原因。
说到底就是因为传递的表单的元素类型与controller中接收对象的属性值不相同。
我用来获取表单数据是直接用的serialize
var postData = $("#typeForm").serialize();
一般情况下不会报错,但我的jsp页面用了WdatePicker时间控件,直接获取时获取的是String类型值,而controller中接收对象的属性是date,有冲突所以报错,而以上方法并不能对数据进行类型转换。
解决方法:
我是用Ajax实现操作的,用的数据类型是JSON
在这里的自定义一个jsonDate
var postData={
"dateTime" : new Date($('#endTime').val())
};
传的数据做一个转换
JSON.stringify(postData)
关键的一步是Controller里的接收对象是参数做注释
@RequestBody ScoreSend scoreSend
完成数据注入