2013-06-13 5 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> 

하지만이 작동하지 않습니다 ..
그리고 나는 또한 구성은 web.xml.The에서 500,404 에러 코드입니다.

<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 

모르겠어요 .. 난 당신이 같은 JSF 페이지를 등록 할 수 없습니다 AFAIK

답변

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

자원으로 그것을 ExternalContext에서 찾을 수 없음 오류가 발생하지 않습니다 web.xml의 오류 페이지. 대신 JSP를 사용해야합니다.

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

수 있습니다! 벌써하고있어. –

+0

예, JSF 페이지 – user1156544

+0

@tmandry를 사용할 수 있습니다. 그 이유를 이해하지 못합니다. 설명해 주시겠습니까? 오류 페이지로 "* .xhtml"파일과 동일한 문제가 있습니다. 그들은 작동하지 않습니다. – Toru

관련 문제