我正在使用Struts2,Spring和Hibernate作为我的网络应用程序。 现在,我正在尝试使用jasper报告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>
这是我的行动课:
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;
}
}
我想生成一个下载弹出窗口,我不想在浏览器中看到该报告。
我怎么强迫这个? contentDisposition
或documentName
参数无效...
提前致谢。
答案 0 :(得分:1)
您必须在内容处置中添加“附件”。
<param name="contentDisposition">attachment</param>
然后删除 filename =“Invoice.pdf”。 此参数与documentName相同。一起使用它们将在HTTP响应中复制此信息。
<param name="contentDisposition">filename="Invoice.pdf"</param>