我有一个按钮,点击后会打开一个新的选项卡并生成一个pdf文件。然而,我希望在点击按钮后能够导航到另一个页面。
也就是说,在点击按钮后,我想要在初始选项卡上打开pdf并导航到另一页。我正在使用primefaces的
这是我的代码:
也就是说,在点击按钮后,我想要在初始选项卡上打开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();