Java Vaadin日期字段验证未显示验证错误
您好,我正在使用vaadin8,我正在尝试使用vaadinsdatefield进行用户输入Java Vaadin日期字段验证未显示验证错误,java,datepicker,vaadin,vaadin8,Java,Datepicker,Vaadin,Vaadin8,您好,我正在使用vaadin8,我正在尝试使用vaadinsdatefield进行用户输入 private DateField date = new DateField("Date of Birth"); ... binder.forField(date).asRequired("Some Warning").withValidator(new DateValidator()).bind(Person::getDateOfBirth, Person::setDateOfBirth); Date
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中,如果用户年龄小于18岁,则不会向用户显示验证错误。但当我输入日期并按enter键或切换到另一个输入字段时,会出现验证错误
当通过日期选择器提供输入时,如何实现显示验证错误?显然
验证器
无法管理值更改事件。您可以自己这样做:
date.addValueChangeListener( event ->
validate( event.getSource().getDefaultValidator(), event.getValue() ) );
还有一些示例validate()
函数:
private void validate(Validator validator, LocalDateTime dateTime)
{
validator.apply(dateTime, ...);
}
显然,
Validator
无法管理ValueChange事件。您可以自己这样做:
date.addValueChangeListener( event ->
validate( event.getSource().getDefaultValidator(), event.getValue() ) );
还有一些示例validate()
函数:
private void validate(Validator validator, LocalDateTime dateTime)
{
validator.apply(dateTime, ...);
}