关闭 p:dialog 后,事件="dialogReturn" 未被调用



我正在使用PrimeFaces 5.2。场景:

  1. 打开对话框以查看列表
  2. 对话框中,在末尾显示操作列
  3. 关闭对话框
  4. 重定向到列中的选定操作页面。

1、2、3 正在工作。

我已经尝试了很多事情,但是关闭它后重定向不起作用。 在我调用重定向代码的地方没有调用dialogReturn方法。

在这里,我成功地在MyFile.xhtml中加载了一个对话框。

<p:commandLink action="#{userDashboardBacking.showPriorityMyView()}"
                  class="myClass"
                  value="#{userDashboardBacking.priorityFilesLabel1} (#{userDashboardBacking.priorityFilesCount1})">
                  <p:ajax event="dialogReturn" update="@form" listener="#{userDashboardBacking.dialogReturn()}" />
    </p:commandLink>

我的文件支持.java

// this always get me to the required dialog/page
public void showPriorityMyView(){
    Map<String, Object> options = new HashMap<String, Object>();
    options.put("modal", true);
    options.put("closable", true);
    options.put("draggable", true);
    options.put("resizable", true);
    options.put("contentHeight", "500");
    options.put("contentWidth", "1100");
    RequestContext.getCurrentInstance().openDialog("priorityMyView", options, null);
}
// this method is never called.
public void dialogReturn(){
    FacesContext facesContext = FacesContext.getCurrentInstance();
    String  outcome = "/myDetails.jsf?faces-redirect=true"; 
    facesContext.getApplication().getNavigationHandler().handleNavigation(facesContext, null,outcome );
}

MyDetailDlg.xhtml

<p:column width="10">
    <h:commandLink update="@form" action="#{myViewDlgBacking.selectedFileIdForDetails(row.fileId)}" title="View Details" immediate="true"
                        styleClass="ui-icon ui-icon-search" />
</p:column>

MyViewDlgBacking.java

// successfully closes the dialogue.
public void selectedFileIdForDetails(Long itemId){
    RequestContext.getCurrentInstance().closeDialog(0);
}

为什么没有调用dialogReturn,关闭对话框后如何重定向到另一个页面?

更改为不带 '()' 的 java 方法

<p:ajax event="dialogReturn" update="@form" listener="#{userDashboardBacking.dialogReturn}" />

并将选择事件作为输入参数添加到您的方法

public void dialogReturn(SelectEvent event){
    Long selectedId = (Long) event.getObject();
}

相关内容

  • 没有找到相关文章

最新更新