Problem: Der Inhalt einer CSV-Datei wird als Seiteninhalt angezeigt, wenn die Anzahl der Datensätze groß ist.Der Inhalt der CSV-Datei wird auf der Webseite angezeigt, anstelle eines korrekten Dateidownloads
Erwartet: Dateidownload.
Die Anfrage wird von einer anderen Seite über window.open (url) ausgelöst; Folgendes ist der URL-Handler.
@RequestMapping(value = "/url", method = RequestMethod.GET)
public void handler(HttpServletRequest request,ModelMap map, @RequestParam("itemPk") long pk, HttpServletResponse response) throws Exception {
CSVWriter csvWriter = new CSVWriter(new OutputStreamWriter(response.getOutputStream()));
try {
List<String[]> data = new ArrayList<String[]>();
for (int i = 0; i < 500; i++) {
String[] row = new String[] {"asdr", "10", "sourajit", "34.567", "06-DEC-2015", "awx445"};
data.add(row);
}
csvWriter.writeAll(data);
response.setContentType("text/csv");
response.setHeader("Content-disposition", "attachment; filename=volcs.csv");
} finally {
csvWriter.flush();
csvWriter.close();
}
}
gleiches Verhalten für GET oder POST. (Für POST, Öffnen eines neuen Fensters mit einem HTML-Formular)