【问题标题】:JasperReportsViewResolver and Spring MVC - Set filenameJasperReportsViewResolver 和 Spring MVC - 设置文件名
【发布时间】: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


    【解决方案1】:

    尝试设置Content-Disposition HTTP response header:

    @RequestMapping(..something)
    public String functionName(HttpServletResponse response, ...something else) {
        .. do some stuff
    
        String header = "inline; filename=myfile.xls";
        response.setHeader("Content-Disposition", header);
    
        return exportReport("Report_docIngresso", EFormatoReport.XLS, model, jrDataSource);
    }
    

    (注意我刚才看到您的结论性评论,您尝试设置内容处置标题但没有成功。嗯..我只能说它在类似的设置中对我有用。)

    【讨论】:

      猜你喜欢
      • 2013-06-08
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多