【问题标题】:Redirect to error page doesn't work with open dialog重定向到错误页面不适用于打开对话框
【发布时间】:2015-01-29 13:57:31
【问题描述】:

我点击

<p:commandButton oncomplete="PF('dlg1').show()" />

 <p:dialog widgetVar="dlg1">
   <p:inputText id="dogName" value="#{mngBean.dogName}" />
</p:dialog>

getDogName() 方法中的 MngBean 中抛出异常。 PrimeExceptionHandler 捕获它并重定向到错误页面,但客户端没有发生任何事情。重定向不起作用,并且没有 ajax 响应发送回客户端。 异常处理程序在所有其他情况下都能正常工作,除非对话框打开。 我不知道如何处理对话框渲染阶段引发的异常。

【问题讨论】:

    标签: ajax exception primefaces dialog


    【解决方案1】:

    Primefaces 发现了在渲染对话框的部分响应期间引发异常时的这种情况。在这种情况下,部分响应编写器以格式错误的 XML 告终,并且对话框在屏幕上挂起,内容无效。 我想出的唯一解决方案是 owerride PrimeExceptionHandler 和我添加的 handleRedirect 方法

    PartialResponseWriter writer = context.getPartialViewContext().getPartialResponseWriter();
            writer.startElement( "script", null );
            writer.write( "window.location.href = '" + writer.write("window.location.href = '" + context.getExternalContext().getRequestContextPath() + errorPage + "?message=" + info.getMessage() + "';" );
            writer.endElement( "script" );
            writer.getWrapped().endCDATA();
            writer.endElement( "update" );
            writer.getWrapped().endDocument();
    

    这样我添加了在出现格式错误的对话框后执行的脚本,这会将其重定向到错误页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多