【问题标题】:Vaadin - PopupDateField not accepting multiple input date formatsVaadin - PopupDateField 不接受多种输入日期格式
【发布时间】:2016-05-04 03:20:44
【问题描述】:

在我的项目中,我有一个标准的DateField 格式为“dd MMM yyyy”。我使用 setDateFormat("dd MMM yyyy") 来设置这种格式。但现在用户也想输入“MM/dd/yyyy”、“MM-dd-yyyy”和“MM dd yyyy”格式,可显示的日期必须仍然是“dd MMM yyyy”。

现在,当我使用 setDateFormat("dd MMM yyyy") 在 DateField 中输入“31/01/2016”时,我收到“日期格式无法识别”错误。

我的问题是如何让日期字段接受多个日期格式输入(不使用日历选择器)。

非常感谢任何帮助。感谢您阅读帖子!!!

【问题讨论】:

    标签: date datetime vaadin vaadin7 datefield


    【解决方案1】:

    你可以覆盖一个方法handleUnparsableDateString

    public class MyDateField extends DateField {
    
        @Override
        protected Date handleUnparsableDateString(String dateString) throws Converter.ConversionException {
            return super.handleUnparsableDateString(dateString);
        }
    }
    

    DateField 无法解析输入时调用该方法。您可以解析方法中的输入并返回正确的Date 实例。

    【讨论】:

    • 谢谢亨利!!但是我使用的是使用 Vaadin 设计器放置的 PopupDateField,所以我不知道如何覆盖由 Vaadin Designer 生成的 Java 文件完成的 PopupDateField 的初始化。我试图在 DateField 上重新分配 Overrided 版本,但它没有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多