Я использую Play Framework 2.2.1 и реализовал свой собственный мастер из этого образец. Но у меня проблема с проверкой, потому что пользователь определяет больше «адресов» и на разных этапах моего мастера.
Вот мой класс Person:
import javax.validation.Valid;
public class Person {
@Valid
private Address permanentAddress; // restrict the validation to the Step1
@Valid
private Address invoiceAddress; // restrict the validation to the Step2
// ...
}
Вот мой адресный класс:
import play.data.validation.Constraints.Required;
public class Address {
@Required(groups = { Step1.class, Step2.class })
private String street;
@Required(groups = { Step1.class, Step2.class })
private String number;
// ...
}
Проверка на шаге 1 завершается сбоем, так как атрибуты "улица" и "номер" имеют значение NULL/пусты в "invoiceAddress". Вот фрагмент моего контроллера:
private static Result handleStep1Submission() {
Form<Person> filledForm = form(Person.class, Step1.class).bindFromRequest();
if (filledForm.hasErrors()) {
// this now fails because "invoiceAddress.street" and
// "invoiceAddress.number" are null/empty
} else {
// ...
}
Как в этом случае ограничить проверку Шагом 1 или Шагом 2?