如何在JSF浏览器中显示带有加载微调器的可打印PDF directl?

如何在JSF浏览器中显示带有加载微调器的可打印PDF directl?,jsf,primefaces,Jsf,Primefaces,我已经实现了一种在JSF页面中生成和下载PDF的机制,并在bean中使用了一种方法。以下是执行此操作的组件: <p:commandButton title="Stampa" icon="ui-icon-print" ajax="false" onclick="PrimeFaces.monitorDownload(start, stop);" rendered

我已经实现了一种在JSF页面中生成和下载PDF的机制,并在bean中使用了一种方法。以下是执行此操作的组件:

   <p:commandButton title="Stampa" icon="ui-icon-print"
                                ajax="false" onclick="PrimeFaces.monitorDownload(start, stop);"
                                rendered="#{productionOrdersView.showMenuOptions()}"
                                target="_blank"
                                actionListener="#{productionOrdersView.print(true)}">
                            </p:commandButton>
我想实现这一模式:

  • 用户点击
  • 将显示带有加载过程的对话框
  • bean加载数据
  • 完成PDF文件的生成
  • 对话框被取消
  • 可打印文档被放在一个新选项卡中

  • 我怎样才能做到这一点?

    或者我提到和搜索的大部分链接都不起作用。诀窍是使用target=“_blank”,但这个诀窍在commandButton中不起作用。如何实现更新中所需的功能@Kukeltje那么没有目标的行为是什么?(它适用于其他没有此功能的用户),再次查看我的评论。如果您的更新是一个新问题,请删除更新并创建一个新问题,然后回答原始问题,并引用我发布的链接和有关其不足原因的明确信息。这就是stackoverflow的工作原理。值得注意的是,您没有使用内容配置,因为这是解决您最初问题的方法。@Kukeltje我已经改变了问题,我希望更容易理解我想要什么。
    public StreamedContent generateSelectedPDFFile() {
        String fileName = "Bolla_" + selected.getOrderNumber();
        InputStream stream = new ByteArrayInputStream(
                new GenerateStatusPDF(companyInfo).generate(selected).toByteArray());
        StreamedContent file = new DefaultStreamedContent(stream, "application/pdf", fileName + ".pdf");
        return file;
    }