Печать jsf ArrayLIst через отчет Jasper с использованием JRBeanCollectionDataSource - PullRequest
0 голосов
/ 16 января 2012

Я использую список массивов jsf для получения записей по некоторым критериям.Теперь я хочу, чтобы содержимое этого списка массивов было напечатано через отчет Jasper.Я выполнил следующие шаги.

  1. Использовал пустой источник данных в отчете Jasper.
  2. Создал поля в отчетах Jasper как поля из моих свойств бина.
  3. Затем я скомпилировал отчетв employeeList.jasper и поместил его в мою папку / reports /employeeReports/employeeList.jasper в проекте jsf (я используюEclipse).

Затем я использовал следующий код, чтобы заполнить и показать отчет в формате PDF

JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(this.srchdEmployeesList);
try {
    FacesContext facesContext = FacesContext.getCurrentInstance();
    HttpServletResponse response =
            (HttpServletResponse) facesContext.getExternalContext().getResponse();
    HashMap parameterMap = new HashMap();
    JasperFillManager.fillReportToFile("/reports/employeeReports/employeeList.jasper", parameterMap, dataSource);
    InputStream reportStream = facesContext.getExternalContext().getResourceAsStream("/reports/employessReports/employeeList.jasper");
    ServletOutputStream servletOutputStream = response.getOutputStream();
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Session hibernateSession = null;
    hibernateSession = HibernateUtils.currentSession();
    connection = hibernateSession.connection();
    facesContext.responseComplete();
    response.setContentType("application/pdf");
    response.setHeader("Content-disposition", "attachment;");
    JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parameterMap, connection);

    connection.close();
    servletOutputStream.flush();
    servletOutputStream.close();
} catch (Exception e) {
    e.printStackTrace();
}

Я получаю следующее сообщение об ошибке, и отчет не отображается

  net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: \reports
  \employeeReports\employeeList.jasper
Caused by: java.io.FileNotFoundException: \reports\employeeReports
   \employeeList.jasper ... 34 more

Помощь в этом отношении будет принята с благодарностью.Связки спасибо заранее.

1 Ответ

0 голосов
/ 17 января 2012

Вы написали, что отчет находится в "Web Content / reports / employeeReports / employeeList". Но ваш код, похоже, не указывает на это. Ваш код указывает на "/reports/employeeReports/employeeList.jasper".

Это так же просто, как использовать относительный путь?
"reports / employeeReports / employeeList.jasper" или "./reports/employeeReports/employeeList.jasper"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...