If you add @Digits annotation on any number, then the number must be within accepted range.
Example
@Digits(integer = 9, fraction = 2)
private double salary;
What are the supported types?
a. byte
b. short
c. int
d. long
e. Byte
f. Short
g. Integer
h. Long
i. BigDecimal
j. BigInteger
k. CharSequence
Note: As per specification double, float is not supported due to rounding errors. Some providers may provide some approximative support
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.
Employee.java
package com.sample.model;
import javax.validation.constraints.Digits;
public class Employee {
private int id;
private String name;
/*
* numeric value out of bounds (<9 digits>.<2 digits> expected)
*/
@Digits(integer = 9, fraction = 2)
private double salary;
public Employee(int id, String name, double salary) {
this.id = id;
this.name = name;
this.salary = salary;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
}
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(1, "Krishna", 1234567890);
System.out.println("Validation errors on bean emp1");
validateBean(emp1);
Employee emp2 = new Employee(2, "Siva", 23456789.23);
System.out.println("Validation errors on bean emp2");
validateBean(emp2);
}
}
Output
Validation errors on bean emp1 ************************************ salary,numeric value out of bounds (<9 digits>.<2 digits> expected) Validation errors on bean emp2 ************************************ No validation errors....
No comments:
Post a Comment