扩展FaceletViewHandler时,重定向到Facelet不起作用

时间:2010-06-16 18:36:54

标签: java jsf facelets

我正在覆盖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 /

1 个答案:

答案 0 :(得分:0)

其中一个Facelets模板出现问题,此模板包含一个错误,一旦解决就允许应用程序正常工作。