spring-mvc-download Aktion
Gibt es einige trick, um immer ein SpringMVC benutzerdefinierte Ansicht zu verursachen, die ein herunterladen der Datei im Browser? Ich habe implementiert die render
Methode von org.springframework.web.servlet.View
aber der code ergibt in meinen Daten, die geschrieben werden auf der Seite als eine blob-Daten eher mit einer download-Aktion starten.
try {
Document oDoc = (Document) model.get("oDoc");
out = new PrintWriter(response.getOutputStream());
response.setContentType("application/vnd.ms-excel");
response.setHeader("content-disposition", "attachment; filename=file.xls");
GenerateXLSFile gof = new GenerateXLSFile();
gof.outputTSVFromDom(out, oDoc);
} catch block here {
//writes to log here
} finally {
if (out != null) {
out.flush();
out.close();
}
}
Kenne ich die render-Methode aufgerufen wird, von der server-logs. Ich weiß, die GenerateXLSFile wird erstellt aus den server-logs. Ich weiß, die outputTSVFromDom können ein Dokument und transformiert es die Arbeit von meinem JUnit-test. Er schreibt auch in das server-Protokoll und ergänzt. Die Daten landet in den browser. Die HTTP-Header sieht normal laut firebug. Keine Fehler aus der catch-block werden in den server log.
Was vermisse ich hier?
- Haben Sie versucht, das hantieren mit den Inhalten geben, um zu sehen, was passiert, wenn Sie es ändern, um etwas anderes (die auch zum Download bereit), wie application/octet-stream???
- Versuchen
out = response.getWriter();
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst, welche API benutzt du? Excel-Dokumente sind binäre, benutzen Sie deshalb Ausgabestrom, nicht Schriftsteller.
Zweiten, der Frühling hat eine eingebaute Unterstützung für die Zustellung von Excel-Dokumenten: