【问题标题】:How to make a XPage active after invoking Java code如何在调用 Java 代码后激活 XPage
【发布时间】:2018-07-12 11:35:31
【问题描述】:

我有一个调用 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(); 
    }

而且效果很好,但仍然存在一些问题。执行此代码后,客户端点击“保存”按钮,此按钮所在的页面被“冻结”,此后客户端无法单击任何内容。

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

如何避免这种情况?提前致谢。

【问题讨论】:

  • 在新标签页打开怎么样?

标签: java jsf xpages xpages-ssjs ssjs


【解决方案1】:

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

请参阅 this answer tooother similar answers

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-27
    • 2020-11-14
    • 1970-01-01
    • 2016-01-04
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多