次のjQuery関数を使用して、日付ピッカーをフォーマットします
$(".datepicker").datepicker({
dateFormat : "MM yy"
}).attr('readonly', true);
選択すると、テキスト フィールドが正しく設定されていることがわかりますNovember 2013
。フォームが送信される前に、Spring検証を使用して日付を検証しています
public class LocalMonthEditor extends PropertyEditorSupport {
@Override
public void setAsText(final String text) throws IllegalArgumentException {
if (!StringUtils.hasText(text)) {
// Treat empty String as null value.
setValue(null);
} else {
LocalDateTime localDateTime = LocalDateTime.parse(text,
DateTimeFormat.forPattern("MMMM yyyy"));
setValue(localDateTime);
}
}
@Override
public void setValue(final Object value) {
super.setValue(value == null || value instanceof LocalDateTime ? value
: new LocalDateTime(value));
}
@Override
public LocalDateTime getValue() {
return (LocalDateTime) super.getValue();
}
@Override
public String getAsText() {
return getValue() != null ? getValue().toString() : "";
}
}
ただし、フォームが送信された後、テキスト フィールドは に変更され2013-11-01T00:00:00.000
ます。フィールドを に維持するにはどうすればよいNovember 2013
ですか?