我正在使用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>
感谢。
答案 0 :(得分:1)
FullAjaxExceptionHandler
不支持它。 FullAjaxExceptionHandler
旨在实现与非ajax请求完全相同的行为。即根据标准Servlet API使用web.xml
指定的<error-page>
条目。
此外,OmniFaces并不是专门针对PrimeFaces的扩展,因此不可能在RequestContext
中使用任何PrimeFaces特定的API,如FullAjaxExceptionHandler
或4.0“对话框架”。如果没有使用PrimeFaces而是使用不同的组件库,它将无法使用它。
您最好的选择是创建自己的异常处理程序。只要您尊重Apache许可,您就可以完全自由地接管FullAjaxExceptionHandler
的部分源代码。另一种方法是请求PrimeFaces Extensions创建并将您想到的异常处理程序添加到其标准集中。