在jsf中配置错误页面时出错?

在我的项目中,我必须在我的代码中发生特定错误时显示错误页面。
我在header.xhtml页面中添加了以下脚本。此页面被添加到每个页面。所以每当出现错误时我都想显示错误页面。

 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"; };  

但这不起作用..
我还在web.xml中配置了500,404错误。代码如下。

   Use this to suppress Facelets error page org.apache.myfaces.ERROR_HANDLING false   500 /facelets/error/internalErrorHome.jsf    404 /facelets/error/pageNotFoundErrorHome.jsf  

但这给了我以下错误。

 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中找不到错误作为资源

  1. 您应该测试您提到的路径是否可访问,并且首先修复路径(如果它们不起作用)。

  2. 为什么不为这些错误代码创建导航案例,然后设置相应的URL而不是使用相对路径。

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

考虑例如:

  mywebapp | |---WEB-INF | |---error | | | |---404.xhtml (and so on) 

在web.xml中:

   404 /error/404.xhtml  

并且类似于500个错误代码。

AFAIK您无法将JSF页面注册为web.xml中的错误页面。 相反,你必须使用JSP。

  404 /error404.jsp