【问题标题】:Wicket DateTimeField dd/MM/yy Date ValidationWicket DateTimeField dd/MM/yy 日期验证
【发布时间】:2014-12-28 03:52:12
【问题描述】:

我有一个DateTimeField,我试图根据用户的偏好允许两种类型的格式:MM/dd/yydd/MM/yy。当用户单击DatePicker 并选择一个日期时,我能够以正确的格式在DateTextField 中显示日期。但是,当我尝试提交表单时,我收到"'date' is not a valid Date" 警报,这是DateTimeField 的默认警报。有没有一种方法可以设置,不仅是日期模式,还有验证模式?正如其他帖子所提到的,我已经尝试实现自己的 IValidatorIConverter,但我没有运气。

这是我如何更改所选日期在DateTextField 中显示方式的代码:

   DateTimeField fromDate = new DateTimeField("fromDate") { 

   private static final long serialVersionUID = 1L;

        @Override 
        protected DatePicker newDatePicker() { 
            DatePicker datePicker = new DatePicker(){ 

                private static final long serialVersionUID = 1L;

                @Override 
                protected String getDatePattern() { 
                     return ((String) getSession()
                            .getAttribute("dateFormat")).replace("yyyy", "yy"); 
                } 

         }; 
         return datePicker; 
    } 

【问题讨论】:

    标签: validation date datepicker wicket date-format


    【解决方案1】:

    您应该使用带有自定义转换器的 dateTextField:

    new DateTimeField(..) {
        protected DateTextField newDateTextField(String id, PropertyModel<Date> dateFieldModel)
        {
            return new DateTextField(id, model, yourCustomConverter);
        }
    }
    

    【讨论】:

    • 感谢您的快速回复!我实际上也在这样做,但没有在我的新 DateTextField 中包含属性模型。我犯了愚蠢的错误。这让我困惑了好久!非常感谢!
    猜你喜欢
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多