Я посмотрел в Интернете, но не смог найти ни одного примера на JSR 303. Это решило бы мою проблему.
Предположим, у вас есть следующие классы (этот дизайн нельзя изменить!):
Человек, у которого есть место жительства и адрес для переписки, представлен следующим образом:
public class Person {
private Address domicile = null;
private Address correspondence = null;
public Address getDomicile() {
return domicile;
}
public void setDomicile(final Address domicile) {
this.domicile = domicile;
}
public Address getCorrespondence() {
return correspondence;
}
public void setCorrespondence(final Address correspondence) {
this.correspondence = correspondence;
}
}
public class Address {
private String streetName = null;
public String getStreetName() {
return streetName;
}
public void setStreetName(final String streetName) {
this.streetName = streetName;
}
}
Как я могу реализовать, используя подход JSR 303, правило, гласящее, что streetName не должно быть пустым, если оно относится к месту проживанияадрес?
Например, при выполнении проверки, подобной этой, я должен получить ошибку проверки (улица для адреса места жительства равна нулю):
Person p = new Person();
Address a = new Address();
a.setStreetName("some street");
p.setCorrespondence(a);
a = new Address();
p.setDomicile(a);
validator.validate(p);
Валидатор вызывается для компонента bean.В соответствии с этой схемой, я думаю, что я должен определить некоторую аннотацию для 2 экземпляров адресов (в классе Person) и в некоторых случаях, как эта информация должна передаваться в какое-то ограничение, определенное в самом поле streetName (например, NotBlank), но я нене знаю, как это сделать.
Я знаю методику групп JSR 303, но она не соответствует моим специальным требованиям.