我正在尝试使用时间戳。我在jsp中定义了一个来自bean的隐藏var。
<form:input type="hidden" path="timeStamp" />
private Timestamp timeStamp;
public final Timestamp getTimeStamp() {
return (timeStamp == null)
? null : (Timestamp) timeStamp.clone();
}
public final void setTimeStamp(Timestamp timeStamp) {
this.timeStamp = (timeStamp == null)
? null : (Timestamp) timeStamp.clone();
}
时间戳在插入操作中生成,我需要它用于删除操作。我的问题是,在控制器中,一旦我试图删除最近插入的记录,这个timeStamp为空(但它在jsp中不为空)
public final void doActionDelete(DumyBean bean, Errors errors, ActionRequest actionrequest...)
bean.timeStamp等于null?我确定时间戳在jsp中,所以我猜问题是关于数据转换。
(编辑:)我认为问题是initBinder方法,我正在做这样的事情......
@InitBinder
public final void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
是否有可能解析日期在JSP中以“dd / MM / yyyy”格式显示,之后春天不知道如何将其再次转换为timeStamp ??
在doAction方法中,错误var显示此错误,似乎问题出在我说的地方,但我不知道如何修复它。
"Failed to convert property value of type 'java.lang.String' to required type 'java.sql.Timestamp' for property 'timeStamp';
nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required type
[java.sql.Timestamp] for property 'timeStamp': PropertyEditor [org.springframework.beans.propertyeditors.CustomDateEditor]
returned inappropriate value of type [java.util.Date]
答案 0 :(得分:4)
问题写在异常中:
PropertyEditor [org.springframework.beans.propertyeditors.CustomDateEditor] 返回类型[java.util.Date]
的不适当值
这意味着CustonDateEditor
返回java.util.Date
,但您需要Timestamp
。
因此,你可以做两件事:
Date
代替Timestamp