我正在尝试生成PDF文档并在新窗口中打开它。我创建了一个Servlet来创建PDF,在我的支持bean中我有这个代码:
public void viewReport(){
try {
FacesContext.getCurrentInstance()
.getExternalContext().redirect("/app/report.pdf?type=sb");
return;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
在我的页面中我有这个:
<h:form target="_blank">
<h:commandButton action="#{clientBean.viewReport}" value="#{msgs['button.view']}"/>
</h:form>
PDF可以,但它会在同一个窗口中打开。如何在bean的新窗口中打开PDF?
答案 0 :(得分:0)
你用普通的HTML做什么呢,而不是用服务器端的bean做黑客?
<a href="/app/report.pdf?type=sb" target="_blank" />#{msgs['button.view']}</a>
答案 1 :(得分:0)
请参阅this example
<h:form target="_blank">
<h:commandButton value="Download PDF" action="#{myBean.downloadPDF}" />
</h:form>
它使用与您的示例相同的代码,区别在于支持bean代码,它不执行重定向,而是直接在响应流中创建并返回PDF文档。