Estou tentando colocar um FileDownload em um DataTable e ao clicar em um commandLink, preciso passar o objeto selecionado na DataTable para o controler, para saber o caminho do arquivo pdf e qual arquivo pdf buscar, mas para fazer isso preciso fazer o seguinte…
<p:column>
<p:commandLink id="cmdImprimeDanfe" ajax="false">
<h:graphicImage url="../img/impressora.png" styleClass="bordaIE"/>
<p:fileDownload value="#{danfeController.file}" />
<f:setPropertyActionListener value="#{nfe}" target="#{danfeController.selectedNFe}"/>
</p:commandLink>
</p:column>
mas quando faço isso o comando danfeController.file executa primeiro que o setPropertyActionListener entao nao tenho ainda o objeto
public StreamedContent getFile() throws FileNotFoundException {
InputStream stream = new FileInputStream(selectedNFe.getEmpresa().getDirXmlNormal() + selectedNFe.getChNFe() + ".pdf");
file = new DefaultStreamedContent(stream, "application/pdf", selectedNFe.getChNFe() + ".pdf");
return file;
}
selectedNFe vem nulljava.lang.NullPointerException
br.com.grupointesis.mensagerianfe.controller.DanfeController.getFile(DanfeController.java:37)
como resolvo esse problema?