Vaadin DateField验证不显示验证错误

问题描述:

你好我正在使用Vaadin 8和即时尝试使用Vaadins DateField用户输入。Vaadin DateField验证不显示验证错误

private DateField date = new DateField("Date of Birth"); 
... 
binder.forField(date).asRequired("Some Warning").withValidator(new DateValidator()).bind(Person::getDateOfBirth, Person::setDateOfBirth); 

DateValidator检查Person是否至少18岁。

问题是,如果我使用日期选择器,它集成在DateField中,如果Person年龄小于18,则不会向用户显示验证错误。但是,当我输入日期并按Enter键或切换到另一个输入字段出现验证错误。

如何通过Datepicker获得输入时显示验证错误?

显然Validator不管理ValueChange事件。你可以做你自己是这样的:

date.addValueChangeListener(event -> 
     validate(event.getSource().getDefaultValidator(), event.getValue())); 

而一些例子validate()功能:

private void validate(Validator validator, LocalDateTime dateTime) 
{ 
    validator.apply(dateTime, ...); 
}