我有一个PDF创建动作bean,其中生成PDF并返回浏览器..但问题是,它会在新的浏览器选项卡中打开..
我曾提到过: http://balusc.blogspot.in/2006/05/pdf-handling.html
谢谢
在jsf中
<h:commandLink id="Print" action="#{Bean.generatePdf}" target="_blank">
<h:graphicImage url="../../resources/icons/print.png"/>
</h:commandLink>
豆 pdf生成代码由balusC提供
答案 0 :(得分:0)
:
<h:commandLink id="Print">
<h:graphicImage url="../../resources/icons/print.png"/>
<f:ajax listener="#{Bean.generatePdf}" render="scriptPanel" onevent="eventHandler"/>
</h:commandLink>
<h:panelGroup id="scriptPanel">
<script>
function eventHandler(event)
{
if (event.status == 'success')
{
window.open('#{Bean.pdfUrl}');
}
}
</script>
</h:panelGroup>
在你的bean中你应该:
private String pdfUrl;
public String getPdfUrl()
{
return pdfUrl;
}
public void generatePdf()
{
pdfUrl = "/pdfDownload?pdfName=myPdfName"; // set new window url here, and any url parameter you need
}
另外,在你的pdf显示servlet中你应该:
@WebServlet(name = "PdfServlet", urlPatterns = {"/pdfDownload"})
public class TestServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// generate the pdf and send it to response outputstream
}
}