我是JSF的新手,我想將Jasper報告集成到JSF中。我從服務器端生成自定義報告,該報告應該使用JSF組件顯示到UI中。 如何做到這一點?您能否提供JSF和Jasper Report Simple Program以及所需的庫?JSF和碧玉示例
Q
JSF和碧玉示例
0
A
回答
1
假設您正在討論JasperReports的HTML報告,最好的辦法就是在此階段忘記JSF位,因爲這與JasperReports無關。反過來,JSF也不能對「第三方」HTML做任何明智的事情。只需將HTML 元素添加到JSF頁面,該頁面的src
指向HttpServlet
實例的URL,該實例根據請求參數或pathinfo返回JasperReports的所需HTML報告,然後您可以使用EL動態傳遞該報告。例如:
<iframe width="600" height="400" src="reportservlet?id=${bean.someid}"></iframe>
背後的/reportservlet
url-pattern
剛剛調用的JasperReports按照它的文檔/教程HttpServlet
,獲得它的一個InputStream
,並將其與正確設定的響應頭一起寫入HttpServletResponse
的OutputStream
,至少Content-Type
是重要的。
0
BalusC建議似乎很好,如果你想要HTML報告。 這裏是我的答案,如果你想要任何其他格式(如PDF)
對servlet發出Ajax請求以「準備」報告並將其存儲在某處,然後返回新創建的報告的ID。
響應返回成功或失敗。在成功的情況下,你彈出一個新窗口,其中一個假想的URL和(使用你的ID)
0
您可以從下載JAR以下鏈接
http://www.java2s.com/Code/Jar/d/Downloaddynamicreportscore310jar.htm
,或者如果你的PDF文件流吧使用Maven,然後略低於依賴添加到您的pom.xml文件
<dependency>
<groupId>net.sourceforge.dynamicreports</groupId>
<artifactId>dynamicreports-core</artifactId>
<version>3.1.3</version>
</dependency>
XHTML頁面
<h:commandLink id="summary_jasper" actionListener="#{workReportBean.prepareJasperReport()}">
<p:graphicImage name="/images/jasper.png" title="Jasper"/>
</h:commandLink>
Managed Bean的 //只需提供DB_NAME,憑證和TABLE_NAME,JASPER報告會爲你
public void prepareJasperReport(){
Map<String, String> columnNameNTypeMap = new HashMap<String, String>();
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/DB_NAME", "USER", "PASSWORD");
ResultSet rsColumns = null;
DatabaseMetaData meta = connection.getMetaData();
rsColumns = meta.getColumns(null, null, "TABLE_NAME", null);
while (rsColumns.next()) {
columnNameNTypeMap.put(rsColumns.getString("COLUMN_NAME"), rsColumns.getString("TYPE_NAME"));
}} catch (SQLException e) {
e.printStackTrace();
return;
} catch (ClassNotFoundException e) {
e.printStackTrace();
return;
}
// a new report
JasperReportBuilder report = DynamicReports.report();
// populating new report with TABLE object
report.setDataSource("select * from TABLE_NAME;", connection);
// creating COLUMNS // add extra datatypes if your table have ex. long, float etc
for (Map.Entry<String, String> entry : columnNameNTypeMap.entrySet()){
if(entry.getValue().equalsIgnoreCase("int")){
report.columns(Columns.column(entry.getKey(), entry.getKey(), DataTypes.integerType()));
}else if(entry.getValue().equalsIgnoreCase("varchar")){
report.columns(Columns.column(entry.getKey(), entry.getKey(), DataTypes.stringType()));
}else if(entry.getValue().equalsIgnoreCase("bit")){
report.columns(Columns.column(entry.getKey(), entry.getKey(), DataTypes.booleanType()));
}else if(entry.getValue().equalsIgnoreCase("datetime") || entry.getValue().equalsIgnoreCase("date")){
report.columns(Columns.column(entry.getKey(), entry.getKey(), DataTypes.dateType()));
}
}
report.title(Components.text("Summary Report").setHeight(40)
.setStyle(DynamicReports.stl.style()
.setBold(true).setFontSize(16).setForegroundColor(Color.BLUE)
.setAlignment(HorizontalAlignment.CENTER, VerticalAlignment.MIDDLE)));
report.setColumnTitleStyle(DynamicReports.stl.style().setBold(true));
report.setColumnStyle(DynamicReports.stl.style().setHorizontalAlignment(HorizontalAlignment.LEFT));
report.setHighlightDetailEvenRows(true);
report.pageFooter(Components.pageXofY());
try {
// show the report
report.show(false);
// export the report to a pdf file
//report.toPdf(new FileOutputStream("d://report.pdf"));
} catch (DRException e) {
e.printStackTrace();
} /*catch (FileNotFoundException e) {
e.printStackTrace();
}*/
}
創建
相關問題
- 1. 意外碧玉例外
- 2. 用碧玉和servlet
- 3. 字符串和碧玉
- 4. 碧玉例外occure到SQLServer的2008 R2
- 5. Struts2的標籤給碧玉例外
- 6. IReport和碧玉報告神祕
- 7. JavaBeans的碧玉的JasperReports的iReport的和
- 8. 如何整合碧玉和gwt?
- 9. 動態碧玉報告
- 10. 碧玉報告錯誤
- 11. 獲取碧玉異常
- 12. Groovy的碧玉插件
- 13. 碧玉異常在JBoss 5.0.1
- 14. 對準碧玉報告
- 15. 碧玉:錯誤的URL
- 16. java的碧玉PARAMS靜態
- 17. 多頁面碧玉報告
- 18. 如何顯示僅使用ireports(碧玉報告)servlet和jsp
- 19. 碧玉經過格式化的文本字段碧玉改變格式
- 20. Applet和JSF集成 - 示例
- 21. 如何編譯jrxml以獲取碧玉?
- 22. 碧玉中使用Spring豆報告
- 23. 碧玉表格第一行中的PDF
- 24. 動態碧玉報告標題圖片
- 25. 碧玉刪除圖像分組可變
- 26. 碧玉報告產生不良HTML
- 27. 填寫碧玉報告時的進度
- 28. 碧玉報告表達式求值
- 29. 碧玉報告表中的問題
- 30. 如何刪除碧玉報告