Я пытаюсь использовать метод 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 применяется к коллекции.
Любые идеи? Заранее спасибо!
+1 для уточнения вопроса. Это кажется странным, потому что у меня никогда не было этой проблемы с GWT 2.6. Я не пытался с GWT 2.7 –