1

我对日期验证有疑问。它只在开始时起作用。在我输入日期并再次删除它后,它停止工作。使用 String 字段它可以工作。此外,我希望使用 2 个验证器,但它只检测到一个 有人可以帮助我或给我一个提示吗?

首先,我在 DateEditor 中定义需要验证:

@Override
public void setConfiguration(EditorConfiguration editorConfiguration) {
    Validator<LocalDate> validator = ((DateFieldConfiguration) editorConfiguration).getValidator();
    Validator<LocalDate> validator2 = ((DateFieldConfiguration) editorConfiguration).getValidator2();
    if (validator != null && validator2 != null) {
        binder.forField(this).withValidator(validator).withValidator(validator2).asRequired("Mandatory")
                .bind(s -> getValue(), (b, v) -> setValue(v));

    }
}

在我的问题配置中,我添加了一个验证器方法:

private Validator<LocalDate> dateRequiredValidator() {

    return Validator.from(v -> v != null,
            "Feld darf nicht leer sein");
}

private Validator<LocalDate> dateNotAllowedValidator() {
    LocalDate today = LocalDate.now();
    return Validator.from(v -> !(v.isAfter(today)),"Datum kann nicht in der Zulunft sein");
}

我保证我会执行

question.setEditorConfiguration(new DateFieldConfiguration(dateRequiredValidator(),dateNotAllowedValidator()));

我用我的字符串字段尝试了这个解决方案,一切都像一个魅力

4

0 回答 0