ADF Jdeveloper - 在 JSP 上使用 javascript 执行按钮点击

ADF Jdeveloper - Perform click on button using javascript on JSP

我正在尝试使用 javascript 在按钮中执行单击,我想在支持 bean 中执行一个应该 运行 的方法。

这是我的资源

       <af:resource type="javascript">
          function closePopup(event) {
              //var dialog = event.getSource();
              //var popup = dialog.findComponent("pt1:b17");
              //console.log(popup);
              //popup.click();
              //$("#pt1:b17").trigger("click");
              //popup.hide();
              //event.cancel(); document.getElementById('pt1:b17')
              console.log("trigger the event");

              eventFire(document.getElementById(AdfPage.PAGE.findComponentByAbsoluteId('pt1:b17').getClientId()), 'click');
          }

          function eventFire(el, etype) {

              if (el.fireEvent) {
                  console.log("true");
                  el.fireEvent('on' + etype);
              }
              else {
                  console.log("false");
                  var evObj = document.createEvent('Events');
                  evObj.initEvent(etype, true, false);
                  el.dispatchEvent(evObj);
              }
          }
        </af:resource>

现在这是我的 jsp 代码:

                                                                 <af:group id="g4">
                                                                    <af:commandButton text="Aceptar" id="b17">
                                                                        <af:fileDownloadActionListener contentType="excelHTML" filename="#{viewScope.mbFiles.file_name}" method="#{viewScope.mbFiles.generateFile}"/>
                                                                    </af:commandButton>
                                                                    <af:button text="test" id="buttonTest">
                                                                        <af:clientListener method="closePoPup" type="action"/>
                                                                    </af:button>
                                                                </af:group>

我无法触发下载文件的方法。

提前致谢。

我post另一个问题的答案:

代码是这样的:

Java中的方法:

  public void prepareForDownloadAction(ActionEvent act) {

FacesContext context = FacesContext.getCurrentInstance();
ExtendedRenderKitService erks =
Service.getService(context.getRenderKit(),
       ExtendedRenderKitService.class);

erks.addScript(context, "customHandler();");
}

现在这是我在 Java脚本中的方法:

<af:resource type="javascript">              

      function customHandler(evt) {
          console.log(evt);

          var exportCmd = AdfPage.PAGE.findComponentByAbsoluteId("pt1:b17");
          console.log(exportCmd);
          var actionEvent = new AdfActionEvent(exportCmd);
          console.log(actionEvent);
          actionEvent.forceFullSubmit();
          actionEvent.noResponseExpected();
          actionEvent.queue(false);

          setTimeout(function(){hidePopup();}, 1000);    


      }                                    

      function hidePopup() {

          var popup = AdfPage.PAGE.findComponent("pt1:popupAceptarDescargarPlantilla::content");

          popup.hide();

      }

    </af:resource>

你们好。