JasperReport插件Struts2强制下载

JasperReport插件Struts2强制下载,struts2,force-download,jasper-plugin,Struts2,Force Download,Jasper Plugin,我的web应用程序使用Struts2、Spring和Hibernate。 现在,我正在尝试使用jasper reports struts插件生成PDF报告。 我将结果类型添加到struts.xml文件: <result-types> <result-type name="jasper" class="org.apache.struts2.views.jasperreports.JasperReportsResult" default="false"/&

我的web应用程序使用Struts2、Spring和Hibernate。 现在,我正在尝试使用jasper reports struts插件生成PDF报告。 我将结果类型添加到struts.xml文件:

    <result-types> 
        <result-type name="jasper" class="org.apache.struts2.views.jasperreports.JasperReportsResult" default="false"/> 
    </result-types>

行动定义:

    <action name="vf" class="packaget.InvoiceAction" method="seeInvoice">
         <result name="success" type="jasper">
             <param name="location">/WEB-INF/reports/invoice.jasper</param>
             <param name="dataSource">invoiceSource</param>
             <param name="format">PDF</param>
             <param name="contentDisposition">filename="Invoice.pdf</param>
             <param name="documentName">Invoice.pdf</param>
             <param name="reportParameters">invoiceParameters</param>
         </result>
    </action> 

/WEB-INF/reports/invoice.jasper
发票来源
PDF
filename=“Invoice.pdf
Invoice.pdf
发票参数
这是我的动作课:

public class InvoiceAction extends BaseAction implements Preparable {       
  ...
  public String seeInvoice(){
         List<Invoice> invoice= new ArrayList<Invoice>();
         facturas.add(new Invoice());
         invoiceParameters.put("message","test");
        return SUCCESS;
    }

}
公共类InvoiceAction扩展BaseAction实现可准备的{
...
公共字符串seeInvoice(){
列表发票=新的ArrayList();
添加(新发票());
invoiceParameters.put(“消息”、“测试”);
回归成功;
}
}
我想生成一个下载弹出窗口,我不想在浏览器中看到报告。 如何强制执行此操作?
contentDisposition
documentName
参数无效

提前感谢。

您必须在内容配置中添加“附件”

<param name="contentDisposition">attachment</param>
附件
然后删除filename=“Invoice.pdf”。 此参数与documentName相同。将它们一起使用将在HTTP响应中复制此信息

<param name="contentDisposition">filename="Invoice.pdf"</param>
filename=“Invoice.pdf”

filename=“Invoice.pdf
您缺少'”,这是一个打字错误吗?嗨,Umesh,我在值的末尾加了“但没有效果…”。。。我做错了什么?您好,这是一个有趣的话题,您可以配置您的浏览器以请求保存下载文件的位置,而不是将其保存到默认位置location@jzafrilla:对我来说似乎一切正常,我怀疑内容类型未按预期设置。