Вы можете определить несколько методов проверки для одного и того же класса модели для каждого конкретного идентификатора состояния представления. Где каждый пользовательский метод проверки сопоставляется с определенным идентификатором состояния просмотра веб-потока.
Имя вашего класса валидатора для вашей модели должно быть определено с именем «${model}Validator» (и иметь аннотацию @Component), и каждое имя метода проверки должно быть названо следующим образом: «validate${state} (модель [ModelClassType] , контекст ValidationContext)"
Итак, скажем, у вас есть класс модели под названием «Reservation.java» и два разных определения потоков, которые используют эту модель, и каждое определение потока, имеющее определения состояния представления
<!-- defined in your first flow file -->
<view-state id="ReservationSameDayViewState" view="sumting" model="reservationForm">
</view-state>
....
<!-- defined in your 2nd flow file -->
<view-state id="ReservationFutureViewState" view="sumting" model="reservationForm">
</view-state>
Класс валидатора для модели Reservation должен выглядеть следующим образом:
@Component
public class ReservationValidator {
public void validateReservationSameDayViewState(Reservation reservation, ValidationContext context) {
// perform custom validation for first flow
}
public void validateReservationFutureViewState(Reservation reservation, ValidationContext context) {
// perform custom validation for 2nd flow
}
}
http://docs.spring.io/autorepo/docs/webflow/2.4.x/reference/html/views.html#view-validation-programmatic-validator
Кроме того, это плохая практика — определять ваши потоки с целыми приращениями. Измените определение вашего потокового реестра, чтобы оно выглядело следующим образом. Таким образом, вам не нужно вручную добавлять к нему потоки каждый раз, когда вы создаете новые потоки.
<flow:flow-registry id="flowRegistry" flow-builder-services="flowBuilderServices" base-path="/WEB-INF/flows">
<flow-location-pattern value="/**/*-flow.xml" />
</flow:flow-registry>
примечание: имена потоков заканчиваются на «-flow.xml». Это неофициальный стандартный способ определения реестра потоков и имен потоков.
person
Selwyn
schedule
24.04.2015