web應用輸出圖示問題
這段時間由于項目需要展示圖表兼具輸出pdf、excel等格式的功能,使用了jasperreport,這裡記錄一下我遇到的問題,以及如何解決的。關于如何設計報表就不在這裡說了,畢竟網上搜下也有很多例子的。
以我要做一個線圖為例。
1.我使用的是javabean做資料源,是以設計了相應的javabean和其對應的工場類(裡面包含了生成資料的靜态方法--為了在設計報表時可以看到資料用),目标是顯示2個趨勢圖,但是實際值出現一條。
這個是比較
的問題了(新手嘛),查證之後了解,series是資料的變值,該值的設定可以顯示多線條。于是再改了報表之後預覽時就出來了。
2.将*.jasper放到webapp下,在jsp中顯示,結果隻顯示出了靜态文字,圖表沒出來。
網上搜了,發現很多都有講到,但是不是缺這就是缺那,其實,通過jrhtmlexporter的參數設定imageuri是對的,但是關鍵在于jasperreport生成的圖是以流的方式輸送到頁面上的,jasperreport本身的imageservlet就是幹這個的,是以就試試這種方法:在web.xml中加入如下代碼
<servlet>
<servlet-name>imageservlet</servlet-name>
<servlet-class>net.sf.jasperreports.j2ee.servlets.imageservlet</servlet-class>
</servlet>
<servlet-mapping>
<url-pattern>/servlets/image</url-pattern>
</servlet-mapping>
再設定
exporter.setparameter(jrhtmlexporterparameter.images_uri, request.getcontextpath()+"/servlets/image?image=");
這樣之後,再運作程式,圖檔就顯示出來了,你可以通過firebug看到确實發出了一個請求去輸出生成的圖表圖檔,是以這樣問題就解決了!
附上我的運作效果圖: