我有一個按鈕,它打開一個帶有生成的pdf文件的新選項卡。 但是,當我點擊按鈕後,我想導航到另一個頁面。在新標籤頁/窗口中打開/下載文件時刷新/瀏覽當前頁面
這意味着,點擊按鈕後,我想用pdf打開一個新選項卡並導航到最初選項卡上的另一頁。我正在使用primefaces p:commandButton
並嘗試onclick="window.location.href='www.google.de'"
,但它不起作用。但是onclick="window.lalert('www.google.de')"
確實有效。
這是我的代碼:
<h:form id="transForm" target="_blank">
<p:commandButton value="Zertifikat erstellen" ajax="false"
label="Speichert die Anmeldung und erstellt ein Zertifikat im PDF-Format"
action="#{transportErfassen.generatePDFZertifikat()}"/>
</h:form>
generatePDFZertifikat()
確實創建PDF文件與下面的代碼,我覺得這裏的問題:
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
externalContext.setResponseContentType("application/pdf");
externalContext.setResponseHeader("Expires", "0");
externalContext.setResponseHeader("Cache-Control","must-revalidate, post-check=0, pre-check=0");
externalContext.setResponseHeader("Pragma", "public");
externalContext.setResponseHeader("Content-disposition", "inline; filename=\"" + fileName +"\"");
externalContext.setResponseContentLength(out.length);
externalContext.addResponseCookie(Constants.DOWNLOAD_COOKIE, "true", new HashMap<String, Object>());
//setze explizit auf OK
externalContext.setResponseStatus(200);
OutputStream os = externalContext.getResponseOutputStream();
os.write(out, 0, out.length);
os.flush();
facesContext.responseComplete();
facesContext.renderResponse();
感謝您的回覆,我真的很感激。 <3 – leostiw
不客氣:) – BalusC