2 Stimmen

JSF herunterladen und an eine Ergebnisseite weiterleiten

Ich verwende JSF 2.1 und Primefaces. Wenn ein Benutzer ein Formular absendet, füllt mein Programm ein PDF-Dokument aus und lädt es auf den Computer des Benutzers herunter. Anschließend muss ich eine neue Seite mit einer Statusmeldung anzeigen. Mein Code lädt das ausgefüllte Formular herunter, leitet jedoch nicht auf eine Ergebnisseite um.

PDDocument document = PDDocument.load("C:/Backup/test.pdf");
PDDocumentCatalog docCatalog = document.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();
....

füllt die Felder hier...

FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();

response.setHeader("Content-disposition", "attachment; filename=\"test.pdf\""); 
response.setHeader("Refresh", "1; URL=result.xhtml");

BufferedOutputStream output = null;
output = new BufferedOutputStream(response.getOutputStream());
document.save(output);
output.close();
facesContext.responseComplete();

0voto

Apurv Punkte 3685

Sie können eine der folgenden Optionen auswählen:

  1. Option 1

    i. Den Benutzer zur Ergebnisseite umleiten

    ii. Zeigen Sie dem Benutzer eine Download-Schaltfläche an. Wenn auf diese Schaltfläche geklickt wird, öffnet sich ein neues Fenster, in dem das PDF angezeigt/heruntergeladen wird.

  2. Option 2

    i. Den Benutzer zur Ergebnisseite umleiten

    ii. Wenn die Ergebnisseite geladen wird, senden Sie über JavaScript/jQuery eine Anfrage, um ein neues Fenster zu öffnen, in dem das PDF angezeigt/heruntergeladen wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X