无法在JSF中的Primefaces媒体中显示StreamedContent

时间:2013-08-15 18:12:23

标签: java jsf primefaces itext

我在JAVA中使用iText动态生成PDF。 Bean属性:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
Document document = new Document(PageSize.LETTER);
pdfWriter = PdfWriter.getInstance(document, baos);
//iText code here
ByteArrayInputStream stream = new ByteArrayInputStream(baos.toByteArray());
StreamedContent file = new DefaultStreamedContent(stream,"application/pdf","Sds.pdf");

因此,bean属性返回StreamedContent类型的此文件变量。当我使用标签时,它就像一个魅力。但是,当我使用媒体对象时如下:

    <p:media player="pdf" height="500" width="400" value="#{beanName.beanProperty}"></p:media>

我收到提示“文件不以%pdf-开头”,并在控制台中显示

"org.primefaces.application.PrimeResourceHandler handleResourceRequest
 SEVERE: Error in streaming dynamic resource. Expression cannot be null"

我也尝试过使用iframe,但没有运气。基本上,我试图在一个网页上嵌入一个框架,一旦页面加载,我可以自动加载我生成的动态PDF。静态URL工作但动态内容不起作用!我尝试了各种解决方案。 Primefaces downloadLink可以使用,但是Primefaces media不能。顺便说一句,我试图在IE9中实现这一点。 (它也不适用于Chrome)。 我真的很感激任何帮助。谢谢!

0 个答案:

没有答案