我了解到 JasperViewer ( JasperReports 的默认预览组件)是一个 Swing 组件,所以有什么方法可以转换或嵌入它在Web应用程序中?有人说我应该使用 Java Web Start ,但是从我从this link JWS 学到的知识对于在客户机上下载和安装应用程序很有用。不是我们的情况。其他工作可能有用(可能只是在理论上)将 jFrame 转换为 jApplet ,如简要描述in this link
答案 0 :(得分:2)
如果您知道如何生成报告,则可以在servlet中轻松完成并将生成的文件发送到客户端。使用JWS应用程序或Applet很可能意味着报告是在客户端生成的,并且原始数据加上所有依赖项也可供客户端使用。
以下代码假定您正在生成PDF文件
public class ReportServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
// initialize your report objects here
JasperReport jasperReport =
JasperPrint print =
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, resp.getOutputStream());
resp.setContentType("application/pdf");
exporter.exportReport();
} catch (Exception e) {
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Error generating report : " + e.getClass() + " " + e.getMessage());
}
}
您可以通过设置正确的内容类型并使用匹配的JRXYZExporter(JRHtmlExporter,JExcelApiExporter,...)来扩展上面的示例以支持多种导出格式
如果您需要更具可自定义的内容,您可能还需要查看Jasper Server