If you annotate any element with @AssertTrue annotation,
then the annotated element must be true.
What are the
supported types?
a.
boolean
b.
Boolean
Where can I apply
this annotation?
a.
METHOD,
b.
FIELD,
c.
ANNOTATION_TYPE,
d.
CONSTRUCTOR,
e.
PARAMETER,
f.
TYPE_USE
Find the below working application.
package com.sample.model; import javax.validation.constraints.AssertTrue; public class Employee { private int id; @AssertTrue private boolean isExperienced; public Employee(int id, boolean isExperienced) { this.id = id; this.isExperienced = isExperienced; } public int getId() { return id; } public void setId(int id) { this.id = id; } public boolean isExperienced() { return isExperienced; } public void setExperienced(boolean isExperienced) { this.isExperienced = isExperienced; } }
Test.java
package com.sample.test; import java.util.Set; import javax.validation.*; import javax.validation.ValidatorFactory; import com.sample.model.Employee; public class Test { private static ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory(); private static Validator validator = validatorFactory.getValidator(); private static void validateBean(Employee emp) { System.out.println("************************************"); Set<ConstraintViolation<Employee>> validationErrors = validator.validate(emp); if (validationErrors.size() == 0) { System.out.println("No validation errors...."); } for (ConstraintViolation<Employee> violation : validationErrors) { System.out.println(violation.getPropertyPath() + "," + violation.getMessage()); } System.out.println(""); } public static void main(String args[]) { Employee emp1 = new Employee(123, false); System.out.println("Validation errors on bean emp1"); validateBean(emp1); Employee emp2 = new Employee(234, true); System.out.println("Validation errors on bean emp2"); validateBean(emp2); } }
Output
Validation errors on bean emp1 ************************************ isExperienced,must be true Validation errors on bean emp2 ************************************ No validation errors....
No comments:
Post a Comment