Jsf omnifaces和prime p:对话框模式错误

Jsf omnifaces和prime p:对话框模式错误,jsf,primefaces,modal-dialog,omnifaces,Jsf,Primefaces,Modal Dialog,Omnifaces,我使用omnifaces来处理ajax超时异常 在faces config中对其进行配置后: <factory> <exception-handler-factory>org.omnifaces.exceptionhandler.FullAjaxExceptionHandlerFactory</exception-handler-factory> </factory> org.omnifaces.exceptionhandler.fullaja

我使用omnifaces来处理ajax超时异常

在faces config中对其进行配置后:

<factory>
<exception-handler-factory>org.omnifaces.exceptionhandler.FullAjaxExceptionHandlerFactory</exception-handler-factory>
</factory>

org.omnifaces.exceptionhandler.fullajaxexceptionhandler工厂
它正确地重定向到登录页面,在web.xml中配置

<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/public/index.jsf?expired=true</location>
</error-page>

javax.faces.application.ViewExpiredException
/public/index.jsf?expired=true
但我发现了两个bug:

1。重定向忽略查询字符串的存在(?expired=true)

2.使用primefaces组件p:dialog with modal=“true”,页面被重定向到已定义的页面,但页面仍然不可用,因为重定向已完成,但因此阻止了应用程序主窗口上的工作流

Omnifaces 1.6.3 Primefaces 3.5

你经历过这样的情况吗

一,。重定向忽略查询字符串(?expired=true)的存在

您已经将此报告为,这很好


二,。使用带有modal=“true”的primefaces组件p:dialog,页面被重定向到已定义的页面,但页面仍不可用,因为重定向已完成,但因此阻止了应用程序主窗口上的工作流

当ajax请求的oncomplete(应该隐藏覆盖)由于渲染期间的异常而无法执行时,PrimeFaces覆盖小部件会“挂起”。您需要将以下内容添加到错误页面以修复该问题:

<h:outputScript target="body" rendered="#{facesContext.partialViewContext.ajaxRequest}">
    setTimeout(function() {
        $(".ui-widget-overlay").hide();
    }, 250);
</h:outputScript>

setTimeout(函数(){
$(“.ui小部件覆盖”).hide();
}, 250);
一,。重定向忽略查询字符串(?expired=true)的存在

您已经将此报告为,这很好


二,。使用带有modal=“true”的primefaces组件p:dialog,页面被重定向到已定义的页面,但页面仍不可用,因为重定向已完成,但因此阻止了应用程序主窗口上的工作流

当ajax请求的oncomplete(应该隐藏覆盖)由于渲染期间的异常而无法执行时,PrimeFaces覆盖小部件会“挂起”。您需要将以下内容添加到错误页面以修复该问题:

<h:outputScript target="body" rendered="#{facesContext.partialViewContext.ajaxRequest}">
    setTimeout(function() {
        $(".ui-widget-overlay").hide();
    }, 250);
</h:outputScript>

setTimeout(函数(){
$(“.ui小部件覆盖”).hide();
}, 250);