前端上传日期时间数据到后台时,上传失败
我这里是用里存放时间,上传到后台的controller方法时,参数类型是java.util.Date,发现没有到controller方法里面。报错:不能将String转成Date。
我想错误的原因是前端传上来的是String,而controller方法里用Date接收,因为转换失败而一直不能把数据传到controller。
一开始的错误代码
从
到
function bookCar() {
alert($("#book_car_form").serialize());
$.post("front/order/bookCar", $("#book_car_form").serialize(), function (data) {
if (data == "1") {
alert("预约成功!");
} else {
alert("预约失败!");
}
window.location.reload();
});
}
controller
@RequestMapping("bookCar")
public String bookCar(Integer carId, Date startUseCarDatetime, Date endUseCarDatetime, HttpSession session) {
//...
}
解决方法
方法1
在controller方法里面的参数的类型都改为String
@RequestMapping("bookCar")
public String bookCar(Integer carId, String startUseCarDatetime, String endUseCarDatetime, HttpSession session) {
//...
}
方法2
如果想用一个pojo接收,可以在Date属性加上@DateTimeFormat标签
@RequestMapping("bookCar")
public String bookCar(BookCarQueryVo bookCarQueryVo, HttpSession session) {
//...
}
public class BookCarQueryVo {
private Integer carId;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date startUseCarDatetime;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date endUseCarDatetime;
public Integer getCarId() {
return carId;
}
public void setCarId(Integer carId) {
this.carId = carId;
}
public Date getStartUseCarDatetime() {
return startUseCarDatetime;
}
public void setStartUseCarDatetime(Date startUseCarDatetime) {
this.startUseCarDatetime = startUseCarDatetime;
}
public Date getEndUseCarDatetime() {
return endUseCarDatetime;
}
public void setEndUseCarDatetime(Date endUseCarDatetime) {
this.endUseCarDatetime = endUseCarDatetime;
}
}
如果有错,请大家指正,谢谢。