0

Beanに基づいたフォームを表示するSpring-MVCアプリがあります。Beanには、次の注釈が付いた日付フィールドがあります。

@DateTimeFormat(iso=ISO.DATE_TIME)

これは期待どおりに機能します。日付はその形式で表示されます。一方、Beanの他のフィールドは、JPA検証アノテーションを使用して検証されています。ユーザーがフォームを送信すると、カスタムデータコンバーターが登録され、受信文字列が正常に実行されているように見える日付に変換されます。

したがって、ユーザーがフォームを送信し、他のフィールドの1つで検証が失敗すると、問題が発生します。検証エラーによってユーザーがフォーム入力ページに戻ると、日付オブジェクトでtoString()を呼び出した後、日付の形式が期待どおりに変更されます。

フォームに送り返される前に、オブジェクトのDateTimeFormatアノテーションを再トリガーする方法はありますか?

4

1 に答える 1

3

設定に問題があります。に変換するためのカスタムデータコンバータは必要ありませStringDate。すべてが正常に構成@DateTimeFormatされている場合は、着信と発信の両方のすべてのケースでデータ変換を制御します。

デフォルトのコンバーターがあることを確認<mvc:annotation-driven />し、何らかの方法でオーバーライドしないでください。

mvc-showcaseなどのサンプルを見てください。

于 2011-01-24T22:11:23.120 に答える