In this post, I am going to show you an example of bean
validation API annotations @Min, @Size.
JSR 380 specification provides @Min, @Size annotation to
validate the bean properties.
Below table summarizes these annotations.
Annotation
|
Description
|
@Min
|
If you annotate any number field with this annotation,
then the element must be greater than or equal to the specified minimum
value.
|
@Size
|
The annotated element size must be within given
boundaries.
|
public class Employee { @Min(value=1) private int id; @Size(min=5, max=30) private String firstName; @Size(min=5, max=30) private String lastName; ..... ..... }
For example,
@Min(value=1)
private int id;
I annotated id with @Min(value=1), this annotation make
sure that the value of the id is >=1, else it generated validation error.
@Size(min=5, max=30)
private String
firstName;
I annotated firstName with @Size(min=5, max=30), this
annotation make sure that the length of the field firstName is minimum 5
character and maximum 30 character.
Find the below working application.
package com.sample.model; import javax.validation.constraints.Min; import javax.validation.constraints.Size; public class Employee { @Min(value=1) private int id; @Size(min=5, max=30) private String firstName; @Size(min=5, max=30) private String lastName; public Employee(int id, String firstName, String lastName) { this.id = id; this.firstName = firstName; this.lastName = lastName; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } }
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 { public static void main(String args[]) { ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory(); Validator validator = validatorFactory.getValidator(); Employee emp = new Employee(-1, "Hareesh", "Ram"); Set<ConstraintViolation<Employee>> validationErrors = validator.validate(emp); for (ConstraintViolation<Employee> violation : validationErrors) { System.out.println(violation.getPropertyPath() + "," + violation.getMessage()); } } }
When I ran above application, I seen below messages in
the console.
id,must be greater than or equal to 1
lastName,size must be between 5 and 30
Since the fields id, firstName are violating the minimum
requirements specified by using @Id, @Size annotations, validator generates
these error messages.
No comments:
Post a Comment