java - 使用 Struts2 从服务器接收到重复的 header

标签 java http struts2 http-headers content-disposition

<分区>

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

"Duplicate headers received from server"

我在文件名前使用引号 ("

struts.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>

我已经在 Action 类中提到了内容配置

static final private String Content = "Content-Disposition";

HttpServletResponse response = this.getHttpResponse();
response.setHeader(Content, "attachment;filename='Export.xlsx';");

最佳答案

您可以像设置其他 header 一样设置 contentDisposition:在 struts 配置中。

<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(){ ... }

关于java - 使用 Struts2 从服务器接收到重复的 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27836375/

相关文章:

http - 在帖子正文中发送某些字符时,Web 服务抛出 400 错误请求?

java - JMenuBar 项目消失在面板后面

java - Apache Storm spout 可以相互通信吗?

java - S3 java v1 => v2 : putObject only works when debugging - SdkClientException: Unable to execute HTTP request: Read timed out

java - 从数组列表动态创建复选框java

java - Struts2 应用程序在浏览时显示空白页面

java - 如何每 500 - 1000 毫秒刷新一次 div 标签?

java - 无法更新 PostgreSQL 表中的字段

ruby-on-rails - http协议(protocol)在rails框架中的位置在哪里?

c# - 从 UserAgent 字符串创建 HttpBrowserCapabilitiesBase