2013-04-22 101 views
2

我嘗試在jsp頁面中顯示pdf而不將其保存在硬盤中。我能夠生成pdf,並通過將其保存在硬盤中進行測試。我使用DynamicJasper作爲報告引擎。struts2,jsp項目;顯示pdf

這裏是我的動態碧玉strut.xml:

<action name="myJasperTest" class="com.via.qcm.view.JasperAction"> 
    <result name="success" type="dynamic-jasper"> 
    <param name="dynamicReport">DynamicReport</param> 
    <param name="layoutManager">classic</param> 
    <param name="parameters">dynamicReportDs</param> 
    <param name="documentName">report</param> 
    <param name="contentDisposition">application/download</param> 
    <param name="format">PDF</param> 
    </result> 

我生成PDF並將其保存在ByteArrayOutputStream()

baos = new ByteArrayOutputStream(); 
//export to pdf 
Exporter.exportToPdf(jp, baos); 

現在我的問題是如何在網頁上顯示這個「包」作爲pdf?

+1

哇,8個月後接受的,不錯:] ...在8個月內見到你也爲upvote:D – 2013-12-19 11:12:15

+0

沒有人我實際上不知道接受答案的這個特徵在那個t我。這是我在這個網站的第一個問題,所以請.. ..我很抱歉,我沒有足夠的聲望upvote :-( – Lipu 2013-12-19 11:39:26

+0

不要擔心,只是開玩笑;)PS:你* *有信譽upvote ...它是15 – 2013-12-19 11:40:40

回答

1

有兩個問題:

  • 你需要返回一個DynamicReport對象,而不是一個Byte Array;
  • 的dynamicReport變量必須以lowercase字母開頭:

Struts.xml

<param name="dynamicReport">dynamicReport</param> 

Action

public DynamicReport getDynamicReport(){ 
    DynamicReport dynamicReport = null; 
    // do all your stuff 
    return dynamicReport; 
}