omn​​ifaces和prime p:对话模式错误

时间:2013-12-02 13:19:55

标签: jsf primefaces modal-dialog omnifaces

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

在faces-config:

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

它工作正确地重定向到登录页面,在web.xml配置。

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

但我发现了两个错误:

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

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

Omnifaces 1.6.3 Primefaces 3.5

你是否经历过这种情况?

1 个答案:

答案 0 :(得分:1)

  

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

您已将此报告为issue 287,这很好。


  

2。使用primefaces组件p:对话框与modal =“true”,页面被重定向到已定义的页面,但页面保持不可用,因为重定向已完成,但因此阻止了应用程序主窗口上的工作流程。

PrimeFaces覆盖窗口小部件被称为“挂起”,当完成时 - 由于渲染期间的异常,应该隐藏ajax请求的覆盖 - 无法执行。您需要将以下部分添加到错误页面以修复该问题:

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