Sono nuovo a JasperReports
e non so come chiamare il file jasper dal servlet. Il mio rapporto contiene il grafico a torta.JasperReports: chiamata al report dal servlet
6
A
risposta
1
Ecco un report fittizio creato all'interno di un file Servlet.
È lo stesso come sarebbe nella normale classe Java.
Assicurati di disporre delle importazioni per le classi di rapporti jasper nella parte superiore del file.
L'esempio seguente crea un report da un'origine dati XML.
public class JasperServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
try {
String reportFile = "myJasperReport.jrxml";
File outputFile = new File("Report.pdf");
HashMap hm = new HashMap();
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory
.newDocumentBuilder();
Document document = documentBuilder.parse(new File("myXml.xml"));
// Compile the report
JasperReport report = JasperCompileManager
.compileReport(reportFile);
JRXmlDataSource xml = new JRXmlDataSource(document, "/xml/root");
// Fill the report
JasperPrint print = JasperFillManager.fillReport(report, hm, xml);
// Create an Exporter
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.OUTPUT_FILE, outputFile);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
// Export the file
exporter.exportReport();
} catch (Exception e) {
e.printStackTrace();
}
}
}
5
È possibile preparare il file Jasper e trasmetterlo al client.
bytes[] byteStream = JasperRunManager.runReportToPdf("myJasperReport.jasper",paramMap,databaseConn);
OutputStream outStream = servletResponse.getOutputStream();
response.setHeader("Content-Disposition","inline, filename=myReport.pdf");
response.setContentType("application/pdf");
response.setContentLength(byteStream.length);
outStream.write(bytes,0,bytes.length);
3
modo completo a farlo dalla servlet sarebbe:
public void myServletMethod(HttpServletRequest request, HttpServletResponse response) throws IOException{
JasperReport jasperReport = null;
JasperDesign jasperDesign = null;
Map parameters = new HashMap();
String path = getServletContext().getRealPath("/WEB-INF/");
jasperDesign = JRXmlLoader.load(path+"/relative/path/to/MyReport.jrxml");
jasperReport = JasperCompileManager.compileReport(jasperDesign);
byte[] byteStream = JasperRunManager.runReportToPdf(jasperReport, parameters, **new DataSourceOfYourPreference**);
OutputStream outStream = response.getOutputStream();
response.setHeader("Content-Disposition","inline, filename=myReport.pdf");
response.setContentType("application/pdf");
response.setContentLength(byteStream.length);
outStream.write(byteStream,0,byteStream.length);
}
Problemi correlati
- 1. Alternative al JasperReports e BIRT
- 2. JasperReports: Come chiamare il report nella pagina jsp
- 3. JasperReports: come passare il parametro al sottoreport
- 4. Chiamata posta servlet da un altro servlet
- 5. Servlet di chiamata da GWT con dati di post e file di download generato dal servlet
- 6. JasperReports Server: come esportare report come file html usando l'url
- 7. come inviare file audio dal client al server Android servlet
- 8. JasperReports: funzione CONCATENATE non trovata
- 9. JasperReports e origini dati personalizzate
- 10. redirect jsp dal servlet RequestDispatcher
- 11. JasperReports - specifica più caratteri?
- 12. Esporta i risultati delle query JasperReports
- 13. Export JasperReports in formato HTML
- 14. JasperReports rappresenta la soluzione appropriata per visualizzare i report in un'applicazione Web?
- 15. JasperReports 5.6: JRXlsExporter.setParameter è deprecato
- 16. chiamata Swift dal C
- 17. Servizi di report SQL: la prima chiamata è molto lenta
- 18. JasperReports: valore predefinito invece di 'null'
- 19. Aggiungere un DataSet esistente al report .rdlc
- 20. Qual è l'approccio migliore per utilizzare JasperReports?
- 21. Invia arraylist dal servlet all'applicazione Android
- 22. Confronto tra JasperReports e iText/iTextpdf
- 23. Jquery: chiamata Ajax per servlet e ottenere dati come JSON
- 24. Chiamata dal secondo sim
- 25. Come sfuggire ai caratteri speciali in JasperReports?
- 26. Intestazioni multiple di Content-Disposition distinte ricevute dal server in Jasperreports
- 27. Alla ricerca di un'alternativa a JasperReports
- 28. JasperReports 5.6: Impossibile caricare il seguente carattere
- 29. Connessione al database tramite Hibernate in servlet
- 30. Aggiungere dinamicamente un servlet al servletConfig
Le prestazioni possono essere migliorate compilando il file '.jasper' invece di compilazione del rapporto ad ogni richiesta. –