In meinem @ActionMapping
erstelle ich eine PDF-Datei für den Benutzer.
Jetzt habe ich mich gefragt, wie ich diese pdf an den Benutzer in Form eines Speichern / Öffnen Dateidialogfelds zurückgeben kann?
Ich würde es vorziehen, einen Downloadlink zu zeigen, wenn die Generierung erfolgreich war.
Ich benutze spring-mvc 3.0.5 in Kombination mit Portlets. Aber wenn jemand einige Hinweise für eine normale Anwendung hat, dann kann ich es wahrscheinlich von dort aus herausfinden. Für 2.0 habe ich etwas über das Erweitern einer pdfgenerator-Klasse und das Twittern in der web.xml gelesen, aber seit heute brauchen wir nur POJO's ....
Bearbeiten: Code nach Adeels Vorschlag:
%Vor% Sie können diese Datei direkt in Ihre response writer
schreiben und vergessen Sie nicht contentType
zu ändern. Zum Beispiel
Nun, ich dachte, es ist ein HttpServletResponse
was Sie haben, aber es ist nicht der Fall. Wenn Sie mit Portlet arbeiten, ist dies ein RenderResponse
-Objekt. Nach der Suche im Internet habe ich einige Links gefunden, die Ihnen in dieser Hinsicht hilfreich sein könnten.
Nehmen Sie zunächst ein Beispiel für Lotus Form Server-Portlet , das zeigt, wie mehrere MIME-Typen zugelassen werden, während das Portlet mit portlet.xml
konfiguriert wird.
Hier sind Spring Portlet-Dokumente , die zeigen, wie wir Konfigurieren Sie Portlet mit Portlet.xml. Es hat ein XML-Element über Mime-Typ, sehen Sie, wenn Sie den Wert application/pdf
dort geben können.
Eine andere Idee besteht darin, Ihren Parameter in ActionResponse response
anstelle von RenderResponse response
zu ändern. Ich bin ein bisschen verschwommen hier, nicht sicher, was ist deine Superklasse? Welche Methode ist das? usw. ....
Für mich scheint es, dass das Problem erlaubt / nicht erlaubt Mime-Typen für die Portlet-Antwort.
Hier ist die Antwort, nachdem ich es für eine Weile ausgearbeitet habe: PDF im Frühjahr Portlet MVC-Architektur - Liferay 6.0 .6
Die Lösung besteht darin, den Ressourcendienste-Mechanismus von JSR 286 zu verwenden. ResourceResponse res
hat eine res.setContentType("application/pdf");
-Methode, so dass Sie damit beliebige Ressourcentypen bedienen können. Wenn Sie es als Anhang herunterladen möchten, verwenden Sie Folgendes:
res.addProperty(HttpHeaders.CONTENT_DISPOSITION,"attachment");
Tags und Links java spring spring-mvc portlet spring-portlet-mvc