【发布时间】:2018-04-18 13:19:53
【问题描述】:
我需要有关 JasperReports 和 Spring MVC 的帮助。我可以导出所有内容,但我无法在我的软件导出的输出 PDF/Excel 中设置文件名。
在我的 dispatcher-servlet 中有这个 bean:
<!-- ViewResolver JasperReports -->
<bean id="jasperViewResolver" class="org.springframework.web.servlet.view.jasperreports.JasperReportsViewResolver">
<property name="prefix" value="classpath:/jasper/" />
<property name="reportDataKey" value="dataSource" />
<property name="suffix" value=".jrxml" />
<property name="viewNames" value="Report_*" />
<property name="viewClass">
<value>org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView</value>
</property>
<property name="order" value="1" />
</bean>
即Spring MVC提供的ViewResolver。 我的 BaseController 中有一个函数(由所有 @Controller 扩展的抽象控制器):
protected String exportReport(String reportName, String formatoReport, Model model, JRDataSource dataSource) {
model.addAttribute("dataSource", dataSource);
model.addAttribute("format", formatoReport);
return reportName;
}
所以,我所做的只是从我的所有 @RequestMapping 中返回这个视图名称:
@RequestMapping(..something)
public String functionName(...something else) {
.. do some stuff
return exportReport("Report_docIngresso", EFormatoReport.XLS, model, jrDataSource);
}
这行得通。导出是完美的,但我没有找到设置导出的 pdf/excel 文件名的方法,这就像我在导出报告之前调用的 URL 的最新部分一样。 我已经尝试在 HttpServletResponse 中设置带有文件名的内容处置,但是没有用。
非常感谢, 马可
【问题讨论】:
标签: spring model-view-controller jasper-reports