Перенаправление на Facelet не работает при расширении FaceletViewHandler - PullRequest
0 голосов
/ 16 июня 2010

Я переопределяю метод 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 /"

1 Ответ

0 голосов
/ 02 августа 2010

Возникла проблема с одним из шаблонов Facelets, в этом шаблоне содержалась ошибка, которая после устранения позволила приложению работать должным образом.

...