У меня есть сборка jaser report в ireport, проблема в том, что я действительно хотел открыть отчет в браузере, но он открывается в новом окне компонента на основе свинга и создает пустую страницу в браузере. pdf генерируется при нажатии кнопки.
мой jsp файл
<td><a class="btn btn-primary" href="${pageContext.request.contextPath}/account/viewCaseDetails/${account.caseId}" role="button">View Case</a></td>
Контроллер
@RequestMapping({"/viewCaseDetails/{caseid}"})
@ResponseBody
public void viewCaseDetails(HttpServletResponse response,HttpSession session,@PathVariable("caseid") int caseid) throws JRException, Exception {
System.setProperty("java.awt.headless", "false");
String jrxmlFile =session.getServletContext().getRealPath("/reports/caseInvoice.jrxml");
JasperReport jasperReport = JasperCompileManager.compileReport(jrxmlFile);
System.out.println("sdfg------------df-----"+jrxmlFile);
Object case_id = (Integer)caseid;
Map<String, Object> parameters = new HashMap<>();
parameters.put("caseId", case_id);
Iterator<Map.Entry<String, Object>> itr = parameters.entrySet().iterator();
while(itr.hasNext())
{
Map.Entry<String, Object> entry = itr.next();
System.out.println("Key = " + entry.getKey() +
", Value = " + entry.getValue());
}
JasperPrint jasperprint=JasperFillManager.fillReport(jasperReport,parameters, Connection_db.getConnection());
JasperViewer jasperViewer = new JasperViewer(jasperprint, false);
jasperViewer.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE);
jasperViewer.setZoomRatio((float) 1.25);
jasperViewer.setExtendedState(JasperViewer.MAXIMIZED_BOTH);
jasperViewer.requestFocus();
jasperViewer.setVisible(true);
response.getOutputStream().flush();
response.getOutputStream().close();
}