У меня есть следующее, определенное в web.xml:
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/shared/errors/DefaultErrorPage.xhtml</location>
</error-page>
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/shared/errors/ViewExpired.xhtml</location>
</error-page>
Я также использую FullAjaxExceptionHandler от Omnifaces в лицах -config.xml:
<factory>
<exception-handler-factory>
org.omnifaces.exceptionhandler.FullAjaxExceptionHandlerFactory
</exception-handler-factory>
</factory>
FullAjaxExceptionHandler отлично работает для вызовов ajax, но когда я напрямую нажимаю на страницу и возникает ошибка, он начинает отображать страницу, на которую я пытался перейти, но не заканчивает, а затем страница ошибки, определенная в web. xml отображается, что приводит к тому, что страница с ошибкой внедряется после частично отображаемой страницы.
(Я использую Glassfish 3.1.1 с Mojarra JSF 2.1.3 )Edit :, теперь использую Glassfish 3.1.2.2 и JSF 2.1.11
Изменить :Обнаружено следующее :Страница, на которой возникает ошибка, использует шаблоны(<ui:composition template="/shared/shared/commonLayout.xhtml">
)Если я изменю его так, чтобы страница больше не использовала шаблон, а затем просто добавлю весь код из шаблона, тогда он будет работать нормально.