Ajuda com p:fileDownload do Primefaces

Boa tarde pessoal,

Bom, estou tentando gerar um relatório e fazer o download deste utilizando o componente p:fileDownload do Primefaces, utilizando o código abaixo.

<p:commandButton id="botaoGerarRelatorio" value="Emitir Relatorio" ajax="false" actionListener="#{relatorioControlador.gerarRelatorio}" update="panelMensagens"> <p:fileDownload value="#{relatorioControlador.file}"/> </p:commandButton>

Estou conseguindo gerar o relaório e fazer o download sem problemas. O problema é quando há uma exceção na geração do relatório. Eu não consigo fazer o tratamento da exceção e mostrar a mensagem na tela. Todas as vezes, é tentado fazer o download do arquivo ocasionando erro neste caso. Alguém que já passou por isso poderia me ajudar? agradeço a atenção.

Cara,

Uma vez tive este problema.

Eu precisava gerar um arquivo dinamicamente e efetuar download do arquivo gerado.
Tive problemas para o caso de falha na criação do arquivo.
Também estava utilizando Primefaces e a unica solução que tive foi gerar duas ações.

  • Mas como assim duas ações ?

Bom, eu separei o command que cria o arquivo, em caso de sucesso um command de download era rendered.
Assim consegui o resultado e tratamento esperado.

hmsilva,

obrigado pela resposta. Pensei nesta possibilidade, de um botão para gerar o arquivo e renderizar um outro botão com a opção de downloado, se o arquivo for gerado com sucesso. O problema é que o cliente quer tudo numa ação só. :frowning:

ai dificultou pra caramba …

Posta o código da bean