Wicket DateTimeField dd / MM / yy日期验证

时间:2014-10-31 18:29:46

标签: validation date datepicker wicket date-format

我有一个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; 
    } 

1 个答案:

答案 0 :(得分:1)

您应该将dateTextField与自定义转换器一起使用:

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