Spring 3 - экспорт данных в формате csv

У меня есть некоторые данные в БД и я хотел бы иметь возможность экспортировать его в файл CSV и предоставить ссылку, чтобы пользователь мог ее загрузить.

Есть ли какой-либо механизм, предоставляемый Spring 3 для этого?

Вы знаете, как я мог это сделать?

Ответ 1

Я думаю, что было бы легко создать CSV или любой текстовый файл. Ниже приведены предлагаемые шаги:

  • Создайте класс вида (его можно назвать CSVView), расширяя org.springframework.web.servlet.view.AbstractView

  • Переопределить renderMergedOutputModel следующим образом (псевдокод):

BufferedWriter writer = new BufferedWriter(response.getWriter())

response.setHeader("Content-Disposition","attachment; filename=\"file.csv\"");

myDbData = (Whatever) modelMap.get("modelKey");

some kind of loop {writer.write(myDbData csv row); writer.newLine(); }

finally writer.flush(); writer.close();

После этого просто верните ModelAndView с моделью (объект Whatever с modelKey) и просмотрите как CSVView в контроллере.