【问题标题】:Redirect to new page on Dialog close在对话框关闭时重定向到新页面
【发布时间】:2012-08-11 16:15:23
【问题描述】:

primeface 对话框关闭后,我正在尝试重定向到新页面。我已经尝试在对话框中使用 ajax 关闭事件来触发支持 bean 中的重定向。

<p:ajax event="close" listener="#{bean.goToStartPage}" />

关闭对话框后还有其他方法可以重定向到新页面吗?

【问题讨论】:

    标签: jsf dialog primefaces


    【解决方案1】:

    您可以配置 JSF 以对 AJAX 请求进行正确的重定向,但是如果您不希望以这种方式执行重定向,我将调用一个隐藏按钮,该按钮将触发整个页面回发到您的托管 bean 方法。

    <p:ajax event="close" oncomplete="hiddenBtnWidget.jq.click()" />
    
    ...
    
    <p:commandButton id="hiddenBtn" widgetVar="hiddenBudgetWidget" ajax="false"
        actionListener="#{bean.goToStartPage}" style="display: none;" />
    

    只要你的监听器正在执行重定向,那么这将重定向页面。

    【讨论】:

      【解决方案2】:

      找到here 的另一个解决方案是在 bean 方法中重定向 ExternalContext。这将重定向页面,无论它是否是 Ajax。

      FacesContext ctx = FacesContext.getCurrentInstance();
      ExternalContext extContext = ctx.getExternalContext();
      
      String url = extContext.encodeActionURL(ctx.getApplication().getViewHandler().getActionURL(ctx, "/start.xhtml"));
      
      try {
           extContext.redirect(url);
      } catch (IOException ioe) {
          throw new FacesException(ioe);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-14
        • 1970-01-01
        • 1970-01-01
        • 2017-10-03
        • 1970-01-01
        • 1970-01-01
        • 2020-05-15
        相关资源
        最近更新 更多