【问题标题】:Restore primefaces documentViewer after page reload页面重新加载后恢复primefaces documentViewer
【发布时间】:2016-12-21 17:31:01
【问题描述】:

我正在使用来自 primefaces-extensions 的 documentViewer-component,如下所示:

<pe:documentViewer cache="true" value="#{myBean.streamedContent}"/>  

myBean 是 SessionScoped。

如果我重新加载页面,则调用 getter 并且 streamedContent 不为空,但查看器会显示一个空页面和消息 stream must have data

如何在页面重新加载时在查看器中恢复文档?

【问题讨论】:

    标签: jsf-2 primefaces primefaces-extensions


    【解决方案1】:

    我已经使用PrimeFaces Extensions Showcase 重现了您的问题,所以我使用了以下代码

    ByteArrayOutputStream out = new ByteArrayOutputStream();  
    
    Document document = new Document();  
    PdfWriter.getInstance(document, out);  
    document.open();  
    
    for (int i = 0; i < 50; i++) {  
          document.add(new Paragraph("All work and no play makes Jack a dull boy"));  
    }  
    
    document.close();  
    content = new DefaultStreamedContent(new ByteArrayInputStream(out.toByteArray()), "application/pdf");
    

    但我找到了解决方案。仅使用DefaultStreamedContent 存在问题,但是当我检查层次结构时,我发现也可以使用ByteArrayContent。即使在页面重新加载后也能正常工作。

    示例用法:

    content = new ByteArrayContent(out.toByteArray(), "application/pdf");
    

    【讨论】:

      猜你喜欢
      • 2013-02-21
      • 2013-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2019-01-08
      • 2012-02-06
      相关资源
      最近更新 更多