我对日期验证有疑问。它只在开始时起作用。在我输入日期并再次删除它后,它停止工作。使用 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()));
我用我的字符串字段尝试了这个解决方案,一切都像一个魅力