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

时间:2017-01-11 20:46:00

标签: javascript oracle-adf weblogic12c jdeveloper jspx

我试图使用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>

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

我在另一个问题上发布了答案:

https://stackoverflow.com/a/41708683/5120410

代码是这样的:

Java中的方法:

DECLARE
  table_details_cursor  SYS_REFCURSOR;
  tab_name   ALL_TAB_COLUMNS.table_name%TYPE;
  col_name   ALL_TAB_COLUMNS.column_name%TYPE;
  data_type  ALL_TAB_COLUMNS.data_type%TYPE;
BEGIN
  GET_TABLE_DETAILS (schemaName    => 'DUMMY',
                     table_details => table_details_cursor);

  LOOP 
    FETCH table_details_cursor
    INTO  tab_name, col_name, data_type;
    EXIT WHEN table_details_cursor%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE(tab_name || ' | ' || col_name || ' | ' || data_type);
  END LOOP;
  CLOSE table_details_cursor;
END;

现在这是我在Javascript中的方法:

  public void prepareForDownloadAction(ActionEvent act) {

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

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

Greatings。