使用 Struts2 从服务器接收的重复标头



我在应用程序中使用 Struts2。我需要下载 excel 文件(.xlsx 和 .xls 格式)。这在IE中工作正常,但在Chrome中显示错误

"从服务器接收到重复的标头"

我在文件名("<文件名")之前使用引号。它仍然无法在铬中工作。下面是我的应用程序中使用的代码片段。>

支柱.xml

<action name="*Excel" method="{1}" class="ReportUtilityAction">
    <result name="success" type="stream">
        <param name="contentType">application/vnd.ms-excel</param>
        <param name="inputName">fileInputStream</param>
        <param name="bufferSize">1024</param>
    </result>
</action>

我已经提到操作类中的内容处置为

static final private String Content = "Content-Disposition";
HttpServletResponse response = this.getHttpResponse();
response.setHeader(Content, "attachment;filename='Export.xlsx';");

您可以按照设置其他标头的相同方式设置contentDisposition:在支柱配置中。

<result name="success" type="stream">
    <param name="contentDisposition">attachment;filename="Export.xlsx";</param>
    <param name="contentType">application/vnd.ms-excel</param>
    <param name="inputName">fileInputStream</param>
    <param name="bufferSize">1024</param>
</result>

您还可以使用 ${} 表示法对其进行参数化,并在 Action 中使用相应的 getter:

<param name="contentDisposition">attachment;filename="${filename}";</param>
public String getFilename(){ ... }

该错误意味着标头字段设置了两次;您应该能够在 HTTP 跟踪中看到这一点。因此,您需要找出为什么它设置了两次。

相关内容

  • 没有找到相关文章

最新更新