将hibernate-validator与wicket集成

t77*_*777 3 java wicket hibernate hibernate-validator bean-validation

我有一些实体,其中一些字段用hibernate-validator注释注释,如:

@Entity
public class MyEntity {

    @Pattern(regexp = "[A-Z,0-9]{3,}")
    @Column
    private String key;

    @Range(min = 1, max = 999)
    @Column
    private Integer year;

    // [...]
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在wicket组件(如表单)中使用thoose验证器注释?

t77*_*777 7

我找到了自己的答案:

hibernate-validator只是java-bean-validation(javax.validation,JSR-303)的一个实现.

从Wicket 6.4.0开始,在wicket中支持java-bean验证.

1)为你的项目添加wicket-bean验证,例如使用maven:

<groupId>org.apache.wicket<groupId> 
<artifactId>wicket-bean-validation</artifactId> 
<version>0.5</version>
Run Code Online (Sandbox Code Playgroud)

2)将PropertyValidator添加到您的wicket-fields,例如:

form.add(new TextField("key", new PropertyModel(myModel, "key")) .add(new PropertyValidator()))
form.add(new TextField("year", new PropertyModel(myModel, "year")) .add(new PropertyValidator()))
Run Code Online (Sandbox Code Playgroud)

其余的为你做了wicket和hibernate-validator ......