Vaadin DateField验证不显示验证错误

时间:2017-10-06 11:06:49

标签: java datepicker vaadin vaadin8

您好我使用Vaadin 8并尝试使用Vaadins DateField进行用户输入。

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

DateValidator检查此人是否至少18岁。

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

如果通过Datepicker提供输入,我如何实现验证错误?

1 个答案:

答案 0 :(得分:0)

显然Validator无法管理 ValueChange 事件。你可以自己这样做:

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

一些示例validate()函数:

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