Работа над методом проверки JSF, определенным в bean-компоненте @SessionScoped:
public void doValidation(FacesContext context, UIComponent component, Object value) throws ValidatorException {
// throws ValidatorException on invalid input
...
// But, in some cases we want to lock out the user by invalidating session and redirecting to a different error page
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
ec.invalidateSession();
ec.redirect(errorPage);
}
Однако поведение, которое я наблюдаю при перенаправлении, заключается в том, что вместо / перед переходом на страницу ошибки @SessionScoped bean, кажется, воссоздается (вызывается его конструктор и @PostConstruct). Когда вызов invalidateSession () удаляется, он напрямую переходит к errorPage без повторного создания bean-компонента. Обратите внимание, что на странице ошибки нет ссылок на этот bean-компонент.