日付フィールドを特定の形式(dd-MMMM-yy)で送信するフォームがあります。これは、日付をjava.utilに自動的に解析できるようにスプリングアプリケーションを設定しようとしています.Dateオブジェクト。私が近づいてきたカスタムPropertyEditorを使用したSpringカスタム日付の解析
一つの方法は、これが次に登録するカスタムPropertyEditorRegistrarを作成する最初のインクルードは、フォーム
public class DateTimeEditor extends PropertyEditorSupport {
@Override
public void setAsText(String value) {
try {
setValue(new SimpleDateFormat("dd-MMMM-yy").parse(value));
} catch (Exception ex) {
setValue(null);
}
}
@Override
public String getAsText() {
String stringDate = "";
try {
stringDate= new SimpleDateFormat("dd-MMMM-yy").format((Date)getValue());
} catch(Exception ex) {
//
}
return stringDate
}
}
への発信/から着信しているパース私の日付に対処するカスタムPropertyEditorSupportクラスを作成することですPropertyEditorSupportの上に日付が
public class CustomPropertyEditorRegistrar implements PropertyEditorRegistrar {
@Override
public void registerCustomEditors(PropertyEditorRegistry registry) {
registry.registerCustomEditor(Date.class, new DateTimeEditor());
}
}
春のコンテキストでBeanを作成して処理する
<bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="propertyEditorRegistrars">
<list>
<bean class="com.test.CustomPropertyEditorRegistrar" />
</list>
</property>
</bean>
CustomPropertyEditorRegistrarクラスのregisterCustomEditorsが何度も呼び出されていますが、DateTimeEditorのメソッド(setAsTextまたはgetAsText)が呼び出されることはありません。
なぜでしょうか?あなたはコントローラクラスに結合春にエディタを追加する必要が
感謝。コントローラへのリクエストにエディタを使用するには、プロパティエディタをコントローラwebdatabinderに登録する必要があります。 – JCS