Как сохранить состояние после проверки? (ValidateWholeBean)
Я использую <f:validateWholeBean>
тег (JSF 2.3) для проверки на уровне класса.
Проверка выполняется правильно, однако данные формы удаляются после возврата сообщений с ошибками проверки.
Из того, что я понял, это поведение по умолчанию, но я хотел знать, можно ли сделать иначе, я хочу, чтобы данные оставались в форме после фазы просмотра восстановления. Я хочу, чтобы пользователь видел информацию, которая была введена неправильно.
1 ответ
Я смог решить мою проблему с помощью <o: validateBean value =" # {bean.product} "/>
тег omnifaces в сочетании с атрибутом метода " validateActual ". Заявленное поведение как недостаток в документации идеально для меня.
Если стратегия копирования невозможна из-за технических ограничений, вы можете установить атрибут метода в " validateActual ".
<o:validateBean value="#{bean.product}" validationGroups="com.example.MyGroup" method="validateActual" />
Это обновит значения модели и выполнит проверку после фазы обновления значений модели вместо фазы проверки. Недостатком является то, что недопустимые значения остаются в модели и что метод действия в любом случае вызывается. Вам потребуется дополнительная проверка для FacesContext.isValidationFailed() в методе действия, чтобы увидеть, провалился ли он или нет.