使用Primefaces 5.1处理来自AJAX请求的ViewExpiredExceptions

时间:2015-02-20 15:48:42

标签: ajax jsf jsf-2 primefaces viewexpiredexception

我有一个JSF 2.1 + Primefaces 5.1 Web应用程序,我想处理ViewExpiredException。除了web.xml中的配置(通过<error-page>将异常映射到某个位置),我{I}需要在ajax请求期间抛出这些异常时处理这些异常。

Primefaces为此目的提供<p:ajaxExceptionHandler>。我尝试使用它,虽然我可以看到在服务器日志中抛出异常,但我无法做任何其他事情。也许我用错了方法。例如,当发生此类异常时,我如何将用户发送到index.xhtml页面,刷新所有ajax组件?

我在faces-config.xml中定义了异常处理程序工厂:

<factory>
   <exception-handler-factory>
      org.primefaces.application.exceptionhandler.PrimeExceptionHandlerFactory
   </exception-handler-factory>
</factory>

在我的模板页面中声明了facelets处理程序:

<p:ajaxExceptionHandler type="javax.faces.application.ViewExpiredException"/>

以下是我对这些例外的web.xml配置:

<error-page>
        <exception-type>javax.faces.application.ViewExpiredException</exception-type>
        <location>/index.xhtml</location>
    </error-page>

在使用此方法失败后,我尝试了异常处理程序(read)的显式定义,但也没有成功。

谁能告诉我如何解决这个问题? (我试图坚持使用简单的JSF和Primefaces,虽然我知道Omnifaces为Primefaces提供了类似的解决方案,但我还没有尝试过。)

0 个答案:

没有答案