2015-02-24 2 views
2

Я пытаюсь использовать метод validator.validateValue() в GWT 2.7 и, похоже, не работает корреляция для аннотации @Size в коллекции.Непоследовательность проверки GWT vs bean

Я пытаюсь проверить эту POJO ...:

public class Person { 
    @Size(min = 3, message = "Name not long enough") 
    private String mName; 

    @Size(min = 3, message = "Not enough course subscriptions") 
    private List<String> mCourses; 

    public String getName() { 
    return mName; 
    } 

    public void setName(String pName) { 
    mName = pName; 
    }  

    public void setCourses(final List<String> pCourses) { 
    mCourses = pCourses; 
    } 

    public List<String> getCourses() { 
    return mCourses; 
    } 
} 

... с помощью этого метода проверки:

void validate() { 

    final Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); 

    final Person person = new Person(); 
    person.setName("Ed");//too short 
    person.setCourses(Arrays.asList("Math", "Bio"));//not enough 

    System.out.println("with validate object"); 

    final Set<ConstraintViolation<Person>> violations = validator.validate(person); 

    for (ConstraintViolation<Person> violation : violations) { 
     System.out.println(violation.getMessage()); 
    } 

    System.out.println("with validateValue"); 

    final Set<ConstraintViolation<Person>> violationsName = validator.validateValue(Person.class, "mName", person.getName()); 

    for (ConstraintViolation<Person> violation : violationsName) { 
     System.out.println(violation.getMessage()); 
    } 

    final Set<ConstraintViolation<Person>> violationsCourses = validator.validateValue(Person.class, "mCourses", person.getCourses()); 

    for (ConstraintViolation<Person> violation : violationsCourses) { 
     System.out.println(violation.getMessage()); 
    } 
} 

При выполнении этого кода в простом Java я правильно прибудете :

with validate object 
Name not long enough 
Not enough course subscriptions 

with validateValue 
Name not long enough 
Not enough course subscriptions 

Но при запуске этого кода в GWT I неправильно прибудет:

with validate object 
Name not long enough 
Not enough course subscriptions 

with validateValue 
Name not long enough 

кажется, что метод Validator.validateValue(), в GWT 2.7, не проверяет правильность аннотации @Size применяется к коллекции.

Любые идеи? Заранее спасибо!

+0

+1 для уточнения вопроса. Это кажется странным, потому что у меня никогда не было этой проблемы с GWT 2.6. Я не пытался с GWT 2.7 –

ответ

0

У меня была такая же проблема со значением String. Когда я перезагружаю SDM, он работает отлично.

Плохо, SDM необходимо перезагрузить после каждого изменения валидации.

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