使用 Struts2 从服务器收到重复的 headers
duplicate headers received from server using Struts2
我正在应用程序中使用 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>
我在操作 class 中提到了 content-disposition 作为
static final private String Content = "Content-Disposition";
HttpServletResponse response = this.getHttpResponse();
response.setHeader(Content, "attachment;filename='Export.xlsx';");
您可以像设置其他 headers 一样设置 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(){ ... }
错误的意思是header域设置了两次;您应该能够在 HTTP 跟踪中看到它。因此你需要找出为什么它设置了两次。
我正在应用程序中使用 Struts2。我需要下载 excel 文件(.xlsx 和 .xls 格式)。这在 IE 中工作正常,但在 Chrome 中显示错误
"Duplicate headers received from server"
我在文件名前使用引号 (" struts.xml 我在操作 class 中提到了 content-disposition 作为 <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';");
您可以像设置其他 headers 一样设置 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:
<param name="contentDisposition">attachment;filename="${filename}";</param>
public String getFilename(){ ... }
错误的意思是header域设置了两次;您应该能够在 HTTP 跟踪中看到它。因此你需要找出为什么它设置了两次。