Странное поведение при возврате CSV-файла из Spring контроллера - PullRequest
2 голосов
/ 29 декабря 2010

Я работаю в приложении 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, хотя он дает мне 404 с FireFox.

Браузер Opera также дает мне 404, но он загружает файл, а Firefox - нет?

Действительно, я не понимаю, в чем здесь разница.

1 Ответ

0 голосов
/ 29 декабря 2010

Правильно ли задан HTTP-заголовок Content-Type в ответе?Firefox и Opera, вероятно, работают по-разному.И я подозреваю, что обработчик исключений Spring не устанавливает его вообще.Вы, вероятно, хотите явно установить его как text/csv.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...