2015-07-23 1 views
0

Я новичок, и я работаю с проверкой bean bean.вопрос с проверкой Java bean

У меня есть класс java bean, как указано ниже, с ограничением по размеру и размеру.

import javax.validation.constraints.NotNull; 
import javax.validation.constraints.Size; 
public class Employee { 
@NotNull 
private int id; 
@NotNull 
@Size(min=4, max=9) 
private String name; 
public Employee(){}  
public void setId(int id){this.id=id;} 
public int getId(){return id;} 
public void setName(String name){this.name=name;} 
public String getName(){return name;}  
} 

и у меня есть основной класс, как показано ниже

public class Test { 

public static void main(String[] args) { 
    Employee e=new Employee(); 
     e.setId(0); 
     System.out.println(e.getId()); 
    e.setName("abc"); 

    System.out.println(e.getName()); 
    }} 

Это, как ожидается, бросить ошибку, когда я прохожу имя с длиной меньше 4. Но этот класс успешно выполняет для всех значений Перехожу , Дайте мне знать, что мне не хватает здесь.

Заранее спасибо.

+0

это может помочь http://stackoverflow.com/questions/8756768/annotations-from-javax-validation-constraints-not-working – smoggers

+0

Возможное дублирование http://stackoverflow.com/questions/8756768/annotations-from-javax-validation-constraints-not-working – thanga

ответ

0

Пример кода

import javax.validation.constraints.NotNull; 
import javax.validation.constraints.Size; 
public class Employee { 
@NotNull 
private int id; 
@NotNull 
@Size(min=4, max=9, message="length error") 
private String name; 
public Employee(){}  
public void setId(int id){this.id=id;} 
public int getId(){return id;} 
public void setName(String name){this.name=name;} 
public String getName(){return name;} 

главный класс:

public class Test { 
    public static void main(String[] args) { 
     Employee e = new Employee(); 
     e.setId(0); 
     e.setName("abc"); 
     ValidatorFactory v = Validation.buildDefaultValidatorFactory(); 
     Validator validator = v.getValidator(); 
     Set<ConstraintViolation<Employee>> set = validator.validate(e); 
     for (ConstraintViolation<Employee> constraintViolation : set) { 
      System.out.println(constraintViolation.getMessage()); 
     } 
    } 
} 
+0

Предоставьте больше контекста. Не отправляйте исходный код в ответ и оставьте его без объяснения и комментариев. – Manuel

+0

Спасибо, Бениамин, когда я запускаю приведенный выше код, я получаю и ошибка - «Исключение в потоке» main «javax.validation.ValidationException: Не удается найти поставщика по умолчанию \t по адресу javax.validation.Validation $ GenericBootstrapImpl.configure (Validation.java : 264) \t at javax.validation.Validation.buildDefaultValidatorFactory (Validation.java:111) "... мне нужно добавить какие-либо зависимости? – user001

+0

Прошу прощения, но я не понимаю вашу ошибку. Вы импортировали библиотеку или конфликт библиотеки? Пожалуйста, предоставьте дополнительную информацию, спасибо! – Beniamin

Смежные вопросы