Omnifaces FullAjaxExceptionHandler和PrimeFaces对话框

时间:2013-10-09 10:22:31

标签: jsf-2 primefaces omnifaces

我正在使用omnifaces库中的FullAjaxExeptionHandler并且一切运行良好,但是我不确定如何在发生异常的页面上的PrimeFaces对话框中显示异常。 目前我只能将用户重定向到异常页面,如omnifaces showcase所述。

我现在拥有的:

<error-page>
    <exception-type>java.lang.RuntimeException</exception-type>
    <location>/errorpages/bug.xhtml</location>
</error-page>

我想要的是什么:

<error-page>
    <exception-type>java.lang.RuntimeException</exception-type>
    <location>/currentpage.xhtml?showExceptionDialog(exception)</location>
</error-page>

感谢。

1 个答案:

答案 0 :(得分:1)

FullAjaxExceptionHandler不支持它。 FullAjaxExceptionHandler旨在实现与非ajax请求完全相同的行为。即根据标准Servlet API使用web.xml指定的<error-page>条目。

此外,OmniFaces并不是专门针对PrimeFaces的扩展,因此不可能在RequestContext中使用任何PrimeFaces特定的API,如FullAjaxExceptionHandler或4.0“对话框架”。如果没有使用PrimeFaces而是使用不同的组件库,它将无法使用它。

您最好的选择是创建自己的异常处理程序。只要您尊重Apache许可,您就可以完全自由地接管FullAjaxExceptionHandler的部分源代码。另一种方法是请求PrimeFaces Extensions创建并将您想到的异常处理程序添加到其标准集中。