0
我有一個以特定格式(dd-MMMM-yy)發送日期字段的窗體,我試圖設置我的Spring應用程序,以便它可以自動將日期解析爲java.util .Date對象。我接觸過使用自定義PropertyEditor解析Spring自定義日期
其中一種方法是,首先創建一個自定義PropertyEditorSupport類將處理與分析我的日期將是從/呼出呼入的形式
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
}
}
然後創建一個自定義的PropertyEditorRegistrar的註冊以上PropertyEditorSupport處理日期
public class CustomPropertyEditorRegistrar implements PropertyEditorRegistrar {
@Override
public void registerCustomEditors(PropertyEditorRegistry registry) {
registry.registerCustomEditor(Date.class, new DateTimeEditor());
}
}
在彈簧上下文創建豆
<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