Я переопределяю метод handleRenderResponse, определенный в com.sun.facelets.FaceletViewHandler:
protected void handleRenderException(FacesContext context, Exception ex)
Я переопределяю этот метод, чтобы я мог перенаправить пользователя на пользовательскую страницу ошибки (которая содержитжелаемый вид и прочее и прочее).Это способ, которым я пытаюсь
String errorPage = "/error.xhtml";
String contextPath = context.getExternalContext().getRequestContextPath();
String errorPagePath = contextPath+errorPage;
context.getExternalContext().redirect(errorPagePath);
Предыдущий код - это то, что я использую для перенаправления на эту страницу ошибки.В любом случае, когда я выполняю перенаправление, мне предлагается диалоговое окно загрузки (это происходит с Internet Explorer, в Firefox страница не отображается должным образом или, как я ожидаю).Я попытался изменить "/error.xhtml" на "/error.jsf", но в этом случае я получаю ошибку 404.
Почему-то я думаю, что XHTML-файл не обрабатывается в Facelets ViewHandler после перенаправления, если я открываю загруженный xhtml-файл, я вижу, что выражения EL не были разрешены, а теги пользовательского интерфейса не обрабатывались.,У меня нет проблем с другими страницами в моем приложении, только при программном перенаправлении.
Важные данные из моего web.xml:
facelets.VIEW_MAPPINGS установлен на *.xhtml
javax.faces.DEFAULT_SUFFIX имеет значение .xhtml
отображение сервлета для "Сервлета лиц" равно ".jsf "и" / Faces /"