2013-06-13 4 views
4

В моем проекте мне нужно отобразить страницу с ошибкой, когда в моем коде возникают определенные ошибки.
Я добавил следующий скрипт на страницу header.xhtml. Эта страница добавляется на каждую страницу. Поэтому всякий раз, когда возникает ошибка, я хочу отобразить страницу с ошибкой.Ошибка в настройке страницы ошибки в jsf?

<script type="text/javascript"> 
      A4J.AJAX.onExpired = function(loc, expiredMsg) { 
       window.location = "../facelets/error/invalidSessionLogin.jsf"; 
      }; 

      A4J.AJAX.onError = function(req, status, message) { 
       window.location = "../facelets/error/ajaxError.jsf"; 
      }; 
     </script> 

, но это не работает ..
И я также настроить для 500,404 ошибки в web.xml.The код выглядит следующим образом.

<context-param> 
     <description>Use this to suppress Facelets error page</description> 
     <param-name>org.apache.myfaces.ERROR_HANDLING</param-name> 
     <param-value>false</param-value> 
    </context-param> 
    <error-page> 
     <error-code>500</error-code> 
     <location>/facelets/error/internalErrorHome.jsf</location> 
    </error-page> 
    <!-- if required page not available --> 
    <error-page> 
     <error-code>404</error-code> 
     <location>/facelets/error/pageNotFoundErrorHome.jsf</location> 
    </error-page> 

Но это дает мне следующую ошибку.

11:41:30,618 ERROR [[localhost]] Exception Processing ErrorPage[errorCode=404, location=/facelets/error/pageNotFoundErrorHome.jsf] 
com.sun.faces.context.FacesFileNotFoundException: /facelets/error/pageNotFoundErrorHome.xhtml Not Found in ExternalContext as a Resource 

Я не знаю, где я буду неправильно .. я не получаю это сообщение об ошибке не найдена в ExternalContext как ресурс

ответ

5
  1. Вы должны проверить, является ли путь, который вы упомянули достижим или нет, и в первую очередь исправить пути, если они не работают.

  2. Почему бы вам не создать кейс для навигации для этих кодов ошибок, а затем вместо использования относительных путей установить соответствующие URL-адреса.

    window.location = "$ {request.contextpath}/error/404";

Рассмотрим, например:

mywebapp 
    | 
    |---WEB-INF 
    | 
    |---error 
    | | 
    | |---404.xhtml 

    (and so on) 

В web.xml:

<error-page> 
    <error-code>404</error-code> 
    <location>/error/404.xhtml</location> 
</error-page> 

и за 500, подобным образом код ошибки.

+0

, пожалуйста, дайте простой пример. Как установить пути на странице jsf. – vijayk

+0

Посмотрите на обновленный ответ. –

+0

по-прежнему та же ошибка..Не найдено в ExternalContext как ресурс .. что это значит .. – vijayk

-1

AFAIK вы не можете зарегистрировать страницу JSF как error-page в web.xml. Вместо этого вы должны использовать JSP.

<error-page> 
    <error-code>404</error-code> 
    <location>/error404.jsp</location> 
</error-page> 
+0

Вы можете! я уже это делаю. –

+0

Да, вы можете использовать страницу JSF – user1156544

+0

@tmandry: я не понимаю причину этого. Могли бы вы объяснить? У меня такая же проблема с файлами «* .xhtml» как страницы с ошибками. Они не работают. – Toru

Смежные вопросы