Search code examples
javahibernatewicketbean-validationhibernate-validator

Integrate hibernate-validator with wicket


I have some entities with some fields annotated with hibernate-validator annotations like:

@Entity
public class MyEntity {

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

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

    // [...]
}

Is there any way to make use of thoose validator annotations in wicket components (like forms)?


Solution

  • I found the answer for myself:

    hibernate-validator is just an implementation of java-bean-validation (javax.validation, JSR-303).

    Since Wicket 6.4.0 there is a support in wicket for java-bean-validation.

    1) add wicket-bean-validation to you project, e.g with maven:

    <groupId>org.apache.wicket<groupId> 
    <artifactId>wicket-bean-validation</artifactId> 
    <version>0.5</version>
    

    2) Add PropertyValidator to your wicket-fields, like:

    form.add(new TextField("key", new PropertyModel(myModel, "key")) .add(new PropertyValidator()))
    form.add(new TextField("year", new PropertyModel(myModel, "year")) .add(new PropertyValidator()))
    

    The rest do wicket and hibernate-validator for you ...