Java 日期时间域验证器

Java 日期时间域验证器,java,validation,wicket,Java,Validation,Wicket,我已经创建了一个自定义验证器来验证dateTimefield。 我的问题是我无法将其添加到 datetimefield变量 方法add(IValidator您的DateTimeFieldValidator必须实现IValidator而不是IValidator您的DateTimeFieldValidator必须实现IValidator而不是IValidator我最终按照以下方式验证datetimefield。。 并找出datetimefield(yui)内置的验证——它实际上负责所有基本的验证。

我已经创建了一个自定义验证器来验证dateTimefield。 我的问题是我无法将其添加到 datetimefield变量


方法add(
IValidator您的DateTimeFieldValidator必须实现
IValidator
而不是
IValidator
您的DateTimeFieldValidator必须实现
IValidator
而不是
IValidator

我最终按照以下方式验证datetimefield。。 并找出datetimefield(yui)内置的验证——它实际上负责所有基本的验证。 您只需将XXX.properties文件放入文件夹-

您还可以添加自己的错误密钥和消息,就像我使用的startDate.after.enddate一样

 IFormValidator validator = new AbstractFormValidator() {
        /**
         * 
         */
        private static final long serialVersionUID = -3252346839511722L;

        public FormComponent<?>[] getDependentFormComponents() {
            return new FormComponent[] { startField, endField };
        }
        ValidationError error = new ValidationError();

        public void validate(Form<?> form) {

           Date startDate = (Date) startField.getConvertedInput();
           if(endField.isEnabled()){
                Date endDate = (Date) endField.getConvertedInput();

                if (endDate.before(startDate)){

                    error.addMessageKey(getClass().getSimpleName()  + "startDate.after.enddate");
                    startField.error(error);
                }
           }
        }
    };
    logForm.add(validator );
IFormValidator validator=新的AbstractFormValidator(){
/**
* 
*/
私有静态最终长serialVersionUID=-3252346839511722L;
public FormComponent[]getDependentFormComponents(){
返回新的FormComponent[]{startField,endField};
}
ValidationError error=新的ValidationError();
公共无效验证(表格){
Date startDate=(Date)startField.getConvertedInput();
if(endField.isEnabled()){
日期endDate=(日期)endField.getConvertedInput();
如果(开始日期之前的结束日期)){
error.addMessageKey(getClass().getSimpleName()+“startDate.after.enddate”);
startField.error(错误);
}
}
}
};
添加(验证程序);

我最终按照以下方式验证DateTime字段。。 并找出datetimefield(yui)内置的验证——它实际上负责所有基本的验证。 您只需将XXX.properties文件放入文件夹-

您还可以添加自己的错误密钥和消息,就像我使用的startDate.after.enddate一样

 IFormValidator validator = new AbstractFormValidator() {
        /**
         * 
         */
        private static final long serialVersionUID = -3252346839511722L;

        public FormComponent<?>[] getDependentFormComponents() {
            return new FormComponent[] { startField, endField };
        }
        ValidationError error = new ValidationError();

        public void validate(Form<?> form) {

           Date startDate = (Date) startField.getConvertedInput();
           if(endField.isEnabled()){
                Date endDate = (Date) endField.getConvertedInput();

                if (endDate.before(startDate)){

                    error.addMessageKey(getClass().getSimpleName()  + "startDate.after.enddate");
                    startField.error(error);
                }
           }
        }
    };
    logForm.add(validator );
IFormValidator validator=新的AbstractFormValidator(){
/**
* 
*/
私有静态最终长serialVersionUID=-3252346839511722L;
public FormComponent[]getDependentFormComponents(){
返回新的FormComponent[]{startField,endField};
}
ValidationError error=新的ValidationError();
公共无效验证(表格){
Date startDate=(Date)startField.getConvertedInput();
if(endField.isEnabled()){
日期endDate=(日期)endField.getConvertedInput();
如果(开始日期之前的结束日期)){
error.addMessageKey(getClass().getSimpleName()+“startDate.after.enddate”);
startField.error(错误);
}
}
}
};
添加(验证程序);
 IFormValidator validator = new AbstractFormValidator() {
        /**
         * 
         */
        private static final long serialVersionUID = -3252346839511722L;

        public FormComponent<?>[] getDependentFormComponents() {
            return new FormComponent[] { startField, endField };
        }
        ValidationError error = new ValidationError();

        public void validate(Form<?> form) {

           Date startDate = (Date) startField.getConvertedInput();
           if(endField.isEnabled()){
                Date endDate = (Date) endField.getConvertedInput();

                if (endDate.before(startDate)){

                    error.addMessageKey(getClass().getSimpleName()  + "startDate.after.enddate");
                    startField.error(error);
                }
           }
        }
    };
    logForm.add(validator );