Я хотел бы иметь метод контроллера, возвращающий PDF-файл из JasperReports jrxml-файла без использования какой-либо конфигурации xml.Как использовать JasperReportsPdfView без xml config
Я хотел бы использовать JasperReportsPdfView
. Это вообще возможно? Я знаю, что это может быть сделано только с кодом Java, как в этом блоге:
http://krams915.blogspot.com/2010/12/spring-3-mvc-jasper-integration_22.html
Но я считаю, что это должно быть возможно с меньшим количеством кода :-)
Вот некоторые примеры кода, который делает не работа к сожалению.
@RequestMapping(value = "/test/pdfreport", method = RequestMethod.GET, produces = "application/pdf")
public JasperReportsPdfView getPdf() {
// does not work like this, unfortunately
final Person p = userService.getUserById("the id");
final JasperReportsPdfView view = new JasperReportsPdfView();
view.setReportDataKey("person");
view.addStaticAttribute("person", p); // ??
view.setUrl("report.jrxml");
return view;
}
Спасибо за любой указатель.
Edit: Это мой рабочий раствор:
@Autowired
private ApplicationContext appContext;
@RequestMapping(value = "/test/pdfreport", method = RequestMethod.GET, produces = "application/pdf")
public ModelAndView getPdf() {
final List<Map<String, Object>> users = userService.getUsers();
final JasperReportsPdfView view = new JasperReportsPdfView();
view.setReportDataKey("users");
view.setUrl("classpath:report.jrxml");
view.setApplicationContext(appContext);
final Map<String, Object> params = new HashMap<>();
params.put("users", users);
return new ModelAndView(view, params);
}
Это важно включить spring-context-support
пакет для вашего проекта.
Спасибо за комментарий. Я попробую и дам вам знать мои результаты. – yglodt
Похоже, у меня отсутствует кувшин ... которого я не могу найти для Spring 4.0. Недостающий класс: org/springframework/ui/jasperreports/JasperReportsUtils Возможно ли, что ваш пример кода основан на более старой версии Spring? – yglodt
Я использую версию весны 4.0.3 ... spring-context-support-4.0.3.RELEASE предоставил класс – maksim