Вы можете использовать атрибут rendered
для условного отображения контента.
Е.Г.
<h:commandButton value="Show PDF" action="#{bean.showPdf}" />
<h:panelGroup rendered="#{not empty bean.pdfUrl}">
<iframe src="#{bean.pdfUrl}"></iframe>
</h:panelGroup>
с
public void showPdf() {
pdfUrl = "/context/filename.pdf";
}