我正在覆盖com.sun.facelets.FaceletViewHandler中定义的handleRenderResponse方法:
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错误。
不知怎的,我认为在重定向之后没有处理Facelets ViewHandler的XHTML文件,如果我打开下载的xhtml文件,我可以看到EL表达式没有被解析,并且ui标签没有被处理。我的应用程序中的其他页面没有问题,只有在以编程方式进行重定向时才会出现问题。
我的web.xml中的重要数据:
facelets.VIEW_MAPPINGS设置为* .xhtml
javax.faces.DEFAULT_SUFFIX设置为.xhtml
“Faces Servlet”的servlet映射是“ .jsf”和“/ faces / ”
答案 0 :(得分:0)
其中一个Facelets模板出现问题,此模板包含一个错误,一旦解决就允许应用程序正常工作。