【问题详情】:
在数据库中建表时,为了更加精确,将支付时间设计成datatime类型,java中定义类型为Date,结果从前台页面获取支付时间的值时,一直报400错误
【解决方式】:
1.由于json传递的都是字符串,没办法传给后台时间格式,所以前台传不了,需要后台解析
2.可以在实体类中新增一个虚拟预留字段
1 /**
2 * 支付时间
3 */
4 private Date bPaymentTime;
5 /**
6 * 支付时间STRING
7 */
8 private String bPayTime;
3.前台 Ajax 传递值的时候传递bPayTime字符串
1 $.ajax({
2 type: 'post',
3 url: '${ctx}/service/bill/add',
4 data: {
5 bPayTime: bPayTime6 },
4.然后在Controller中写一个解析器,将bPayTime拿到的值赋给bPaymentTime并转换成需要的时间格式
1 mdrZffcBill.setbPaymentTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(mdrZffcBill.getbPayTime())); //转换日期格式
【测试】:
1.通过断点拦截可以看到,此时bPayTime从前台拿到一个时间字符串,而bPaymentTime为null值
2.当断点通过解析器时,时间格式成功转换
3.放行,前台状态码显示成功
4.成功传入数据库
后记:
以上方法太low了,灵机一动想起了另一个方法,有幸看到这的可以直接使用下面这个方法了!
直接将bPaymentTime改为String类型,让后台接受String类型就行,