Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Bean validation: Digits: Number must be within accepted range

 

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 (. 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> validationErrors = validator.validate(emp);

if (validationErrors.size() == 0) {
System.out.println("No validation errors....");
}

for (ConstraintViolation 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 (. expected)

Validation errors on bean emp2
************************************
No validation errors....

 

 

Previous                                                    Next                                                    Home


This post first appeared on Java Tutorial : Blog To Learn Java Programming, please read the originial post: here

Share the post

Bean validation: Digits: Number must be within accepted range

×

Subscribe to Java Tutorial : Blog To Learn Java Programming

Get updates delivered right to your inbox!

Thank you for your subscription

×