从spring控制器返回csv文件时出现奇怪的行为

时间:2010-12-29 09:48:24

标签: java spring spring-mvc cross-browser

我在spring应用程序中工作,该应用程序具有返回CSV文件的操作方法。

此操作正常但在某些情况下会抛出预定义的异常(MyAppException)。

我有另一种带注释的方法@ExceptionHandler(MyAppException.class)

在异常处理程序方法中,我返回另一个csv文件,但内容不同。

返回csv文件的代码在两种方法中几乎相同。

List<String[]> list= new ArrayList<String[]>();
list.add(new String[]{
   integrationRequestErrorLog.getErrorMessage(),
   Long.toString(integrationRequestErrorLog.getId()),
   Integer.toString(integrationRequestErrorLog.getErrorCode())
});
CSVWriter writer = new CSVWriter(response.getWriter(), ',');
writer.writeAll(list);
writer.close();

两种方法的区别在于内容列表。

在第一种方法中,文件正常返回,而在异常处理程序方法中,我有一种奇怪的行为。

异常处理程序方法适用于Opera浏览器,而它为我提供了一个带有FireFox的404。

Opera浏览器也给我404,但它下载文件而firefox没有?

我真的不明白这里有什么区别。

1 个答案:

答案 0 :(得分:0)

是否在响应中正确设置了Content-Type HTTP标头? Firefox和Opera可能以不同的方式处理事情。并且,我怀疑Spring异常处理程序根本没有设置它。您可能希望将其明确设置为text/csv