Action方法不等待Action Listener方法完成JSF

时间:2015-10-16 19:35:16

标签: jsf action actionlistener

以下是bean A中的方法:

@Transactional
public void updateBO() {

   boolean hasLinkedReq = true;

   update();

   if(hasLinkedReq) {
      showDialog();
   }
}

private void update() {

   // do some stuff
}

public void showDialog() {
  //shows confirmDialog
}    

以下是bean B中的方法:

public void saveChanges() {
    updateBO();
}

@Transactional
public String close() {
    // save something to database
    return "pretty:requests";
}

,这是在xhtml:

<p:commandButton id="confirmSaveCloseBtn"
            value="#{msg['closeunsaved.btn.saveclose']}"
            actionListener="#{productRequest.saveChanges}"
            action="#{productRequest.close}"
            oncomplete="confirmCloseUnsaved.hide()" 
            disabled="#{not requestChecklist.hasWritePermission()}" /> 

因此,不调用showDialog()方法。或者至少在重定向之前没有调用它。当我尝试在新窗口中重定向时,我看到showDialog()显示在第一个窗口中,但是在重定向之后。

你能帮我解决这个问题吗?谢谢!

0 个答案:

没有答案