0

タイムスタンプを操作しようとしています。jsp で Bean からの隠し変数を定義しました。

<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 が null になることです (ただし、jsp では null ではありません)。

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));
}

「dd/MM/yyyy」形式でJSPに表示されるように日付が解析され、その後、春はそれを再びタイムスタンプに変換する方法を知らない可能性はありますか??

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]
4

1 に答える 1