代码之家  ›  专栏  ›  技术社区  ›  J.Doe

调用Java代码后如何激活XPAGE

  •  0
  • J.Doe  · 技术社区  · 6 年前

    我有一个调用Java代码的按钮,其中 Doc 文件将被创建,然后将其提供给客户机。

    我使用以下代码onclick事件进行此操作:

    var v = new ru.generate.doc.generateDoc();
    v.generateReport2();
    

    在GenerateReport2()方法中,我有另一个方法,它将文档提供给客户机。它的实现方式如下:

    private void giveDocumentForClient(String pathToCompleteFile) throws InvalidFormatException, IOException 
        {
              String fn = new File(pathToCompleteFile).getName();
              XspHttpServletResponse response = (XspHttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
              response.setContentType(URLConnection.guessContentTypeFromName(fn));
              response.setHeader("Content-disposition", "attachment; filename=" + fn);
              OutputStream output = response.getOutputStream();
              output.write(IOUtils.toByteArray(new FileInputStream(new File(pathToCompleteFile))));
              output.close();
              FacesContext.getCurrentInstance().responseComplete(); 
        }
    

    它工作得很好,但仍然存在一些问题。在执行完这段代码后,客户机点击保存按钮,这个按钮所在的页面就会被冻结,从此客户机就无法点击任何东西。

    按钮属性设置为默认-完全更新。

    如何避免这种情况?事先谢谢。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Per Henrik Lausten    6 年前

    添加客户端JS调用 XSP.allowSubmit() 按钮,以便在按下按钮后允许新提交。

    this answer too other similar answers .