Struts 2,JasperReports插件:如何为生成的报告设置文件名

时间:2012-12-13 14:19:54

标签: java http struts2 jasper-reports jasper-plugin

该插件似乎无法正常工作。

这是我在 struts.xml 中声明的操作:

<action name="actionName" class="isa.presentation.jasper.MyClass">
    <result name="success" type="jasper">
        <param name="location">jasper/courriers/mutuelle.jasper</param>
        <param name="dataSource">resultats</param>
        <param name="format">HTML</param>
        <param name="documentName">xxx</param>
    </result>
</action>

因此,对于某些格式(HTML,XML),输出文件的名称不是它应该是的(xxx。[format])但是(动作的名称).action !!

为什么呢?可以做些什么吗?

问题2: 对于某些格式(PDF,HTML,XML),文件直接显示在正常的应用程序中,对于其他格式,会有一个提示,询问您是要打开它还是记录它。 HTML和XML格式的问题是它们直接在浏览器中打开而不是在网站上打开... 因此,提示框可能始终出现(无论格式如何)。如果没有,是否可以要求在浏览器的另一个选项卡中打开文件?

1 个答案:

答案 0 :(得分:2)

我从未使用过Jasper结果,但according to the documentation

1)format必须是JasperReportConstants之一,

然后FORMAT_HTML而不是HTML

2)你错过了contentDisposition param,它指定了文件名和处理类型(默认内联):

<param name="contentDisposition">inline; filename="yourFileName.html"</param>

<param name="contentDisposition">attachment; filename="yourFileName.html"</param>

Inline表示您想在浏览器中打开它(如果找到了插件),Attachment您想要下载它,或者使用您计算机上的程序打开它。

我无法理解documentName参数的含义,但您可以尝试使用结果更新您的问题;)

汇总:

<action name="actionName" class="isa.presentation.jasper.MyClass">
    <result name="success" type="jasper">
            <param name="location">jasper/courriers/mutuelle.jasper</param>
            <param name="dataSource">resultats</param>
            <param name="format">FORMAT_HTML</param>
            <param name="contentDisposition">
                        attachment; filename="yourFileName.html"</param>
            <param name="documentName">yourFileName</param>
    </result>
</action>