【问题标题】:Vaadin Form Validation with BeanFieldGroup使用 BeanFieldGroup 进行 Vaadin 表单验证
【发布时间】:2026-02-22 05:55:01
【问题描述】:

在 Vaadin 的书中,我读到以下内容:

使用 BeanValidator 验证 bean,您可以使用它应该验证的 bean 属性的名称对其进行初始化,并将其添加到编辑器字段中。焦点离开字段后立即进行验证。 使用 BeanFieldGroup 时会自动创建 Bean 验证器

这是我的 BeanFieldGroup:

BeanFieldGroup<OrderSearchCriteria> binder = new BeanFieldGroup<>(OrderSearchCriteria.class);
binder.setItemDataSource(searchCriteria);

这就是我在 bean 上添加验证的方式:

@Min(0)
private BigDecimal minAmount;

@Min(0)
private BigDecimal maxAmount;

@Pattern(regexp = "([a-zA-Z]+@[a-zA-Z]+.[a-zA-Z]{2,})?")
private String email;

验证不会像我想象的那样自动添加。那我错过了什么?

【问题讨论】:

    标签: java vaadin


    【解决方案1】:

    您需要下载一个 bean 验证器的实现,然后一切就可以开箱即用了。

    如果你正在使用 maven 并想使用 hibernate-validator,你只需在 pom.xml 文件中添加一个依赖项,如下所示:

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>5.0.0.Final</version>
    </dependency>
    

    参考资料:

    【讨论】: