У меня есть форма, скажем, 3 поля:
- подсказка пароля
- пароль
- пароль снова
У меня есть bean-компонент, содержащий эти 3 поля, и у меня есть валидатор уровня класса, который проверяет, есть ли у bean-компонента совпадающее поле password
и password again
. Представьте себе довольно похожую установку, как это на https://github.com/AnghelLeonard/JSF-2.3/tree/master/JSF23ValidateWholeBeanExample
Проблема, с которой я сталкиваюсь, заключается в том, что я ввожу password hint
, password
и несоответствующий password again
. В этом случае я очищаю всю форму, поскольку, как мне кажется, WholeBeanValidator не позволяет JSF сохранять какие-либо значения в модели. Соответствующее место кода находится в com.sun.faces.ext.component.WholeBeanValidator.validate (FacesContext, UIValidateWholeBean, Object) :
// Mark the components as invalid to prevent them from receiving
// values during updateModelValues
for (Entry<String, Map<String, Object>> validationCandidateEntry : validationCandidate.entrySet()) {
invalidateComponent(validationCandidateEntry);
}
throw toThrow;
В этом случае я думаю, что было бы хорошо сохранить значения модели в полях и получить глобальное сообщение об ошибке. Однако значения не входят в боб. Я понимаю, что-то не так? Не могли бы вы помочь мне в этом @BalusC :)?