如何在调用Java代码后使XPage处于活动状态

问题描述 投票:0回答:1

我有一个调用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个回答
2
投票

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

this answer tooother similar answers

© www.soinside.com 2019 - 2024. All rights reserved.