JSF - предотвратить валидацию при возникновении WARN ValidatorException - PullRequest
2 голосов
/ 31 декабря 2010

У меня есть форма, которая использует валидаторы для своих полей.Эти валидаторы могут отправлять обратно сообщения Severity.SEVERITY_ERROR или Severity.SEVERITY_WARN, как показано на рисунке:

if (!isInMainFamily) {
    FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_WARN, "You should make sure to tag your competency in at least one main category", null);
    throw new ValidatorException(message);
}

Однако сообщения SEVERITY_WARN не блокируют меняЭто просто способ сообщить пользователю, что он должен исправить свой ввод, но не помешает ему отправить форму и сохранить свои данные.

Однако, похоже, что любое исключение ValidatorException помечает FacesContext как«validationFailed», который затем запрещает отправку формы.

Есть ли способ обойти это?Или я что-то неправильно понимаю?

Большое спасибо за вашу помощь,
Себастьян

1 Ответ

5 голосов
/ 31 декабря 2010

Вы бы хотели добавить сообщение в контекст вместо того, чтобы выбросить его как ValidatorException. Это исключение, которое помечает ввод как недействительный и, таким образом, блокирует отправку формы.

context.addMessage(component.getClientId(), message);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...