robię dużo naszej walidacji z Hibernate i adnotacje Wiosna tak:Ręcznie nazwać Wiosna adnotacji Validation
public class Account {
@NotEmpty(groups = {Step1.class, Step2.class})
private String name;
@NotNull(groups = {Step2.class})
private Long accountNumber;
public interface Step1{}
public interface Step2{}
}
I wtedy w sterowniku to się nazywa w argumentach:
public String saveAccount(@ModelAttribute @Validated({Account.Step1.class}) Account account, BindingResult result) {
//some more code and stuff here
return "";
}
Ale chciałbym zdecydować, która grupa jest używana w oparciu o pewną logikę w metodzie sterownika. Czy istnieje sposób ręcznego sprawdzania poprawności? Coś takiego jak result = account.validate(Account.Step1.class)
?
Jestem świadomy tworzenia własnej klasy Validator, ale jest to coś, czego chcę uniknąć, wolałbym po prostu użyć adnotacji na samych zmiennych klas.
OP podał, że nie chce tworzyć klasy Validator, ale wywołanie 'validator.validate (account, errors, Account.Step1.class)' z oddzielnego walidatora wygodnie dodaje błędy do encji odpowiedzi (jeśli BindingResult nie jest zdefiniowany w kontrolerze). – Milanka