因此,我尝试通过commandButton
在新窗口中打开pdf,并使用p:fileDownload组件。
按钮:
<p:commandButton value="#{loc['showPdf']}" id="showPdfButton"
action="#{logReportBean.createPdfByButton}" ajax="false"
onclick="if (#{logReportBean.showPdfButtonOnClickBehaviour()}) form.target='_blank'"
process="@this" update="@this" icon="ui-icon-arrowthick-1-s">
<p:fileDownload value="#{logReportBean.pdfFile}"
contentDisposition="inline" />
</p:commandButton>
showPdfButtonOnClickBehaviour方法:
public boolean showPdfButtonOnClickBehaviour()
{
if(logReportList.isEmpty())
{
return false;
}
return true;
}
仅当showPdfButtonOnClickBehaviour方法为true时,才应在新窗口中打开pdf,但是当方法返回false时,也应打开此新窗口。所以我只想在logReportList
不为空时才有一个新窗口,因为这是我生成pdf的列表。
当我单击按钮时,甚至会在showPdfButtonOnClickBehaviour
中的onclick
被调用之前打开一个新窗口。我不知道为什么
我做错了什么?也许只有当我的logReportList
字段不为空时,才有更好的解决方案在新窗口中打开pdf吗?
对不起,英语不好。