2

JSF 2.1 と Primefaces を使用しています。ユーザーがフォームを送信すると、私のプログラムは PDF ドキュメントに入力し、それをユーザーのコンピューターにダウンロードします。次に、ステータス メッセージを含む新しいページを表示する必要があります。私のコードは入力されたフォームをダウンロードしますが、結果ページにリダイレクトしません。

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

ここにフィールドを埋めます..

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();
4

1 に答える 1

0

次のいずれかに従うことができます。

  1. オプション1

    私。ユーザーを結果ページにリダイレクトします

    ii. ユーザーにダウンロード ボタンを表示します。このボタンをクリックすると、PDF が表示/ダウンロードされる新しいウィンドウが開きます。

  2. オプション 2

    私。ユーザーを結果ページにリダイレクトします

    ii. 結果ページが読み込まれたら、javascript/jQuery を使用して、PDF が表示/ダウンロードされる新しいウィンドウを開くリクエストを送信します。

于 2013-03-29T03:53:55.850 に答える