Remover mensagem emitida pelo TemplateMessage do JBoss Seam

0 respostas
igor_ks

Pessoal, estou emitindo uma mensagem de erro pelo TemplateMessage do Jboss Seam, usa o addMessages do FacesContext do JSF...

A mensagem de erro aparece corretamente quando um erro ocorre, o problema é que quando o processo é executado com sucesso, a mensagem de erro continua na tela..

Código do Bean:

public StreamedContent getCsvFile() {
        Map<String, String> map = new HashMap<String, String>();

        PddMessageUtil.put(map, "calculo.subsistema");
        PddMessageUtil.put(map, "calculo.saldo_carteira");
        PddMessageUtil.put(map, "calculo.saldo_prejuizo");

        CSVFilter filter = new CSVFilter();
        filter.setPeriodo(calculo.getDataBase());
        try {
            String file = csvService.gerarCsv(filter, map);
            return new DefaultStreamedContent(FileUtils.getInputStream(new File(file)), "text/csv", "arquivo.csv");
        } catch (Exception e) {
            LOG.error("Erro ao gerar CSV", e);
            error("global.msg.erro_generating_file");
        }
        return null;

    }

Código do XHTML:

<p:commandLink id="downloadLink" ajax="false"
							immediate="true" 
							onclick="PrimeFaces.monitorDownload(startDialog, stopDialog);">
							<p:fileDownload value="#{calculoUI.csvFile}" />
							<h:graphicImage url="#{resource['images/csv.png']}" />
						</p:commandLink>

Tentativas:
- Emitir outra mensagem de sucesso, para substituir. Resultado: não funcionou, a mensagem nova ficou no pool, ela somente aparece quando outra requisição é feita, como exemplo, sair da tela
- Tentei limpar as mensagens, com o método clear() do org.jboss.seam.international.status.Messages
- Tentei colocando update=":form", update="@all", update="msg"
- Tentei outras coisinhas também como ajax="true"

Uma coisa que notei é que no final do link, quando clico no commandLink, ele adiciona um "#", ou seja, com esse href, ele não faz nenhum requestDispatcher, talvez por falta dessa requisicao que ele não limpa a mensagem

- Tentei trocar o commandLink para commandButton para ele fazer alguma requisicao, mas o resultado foi o mesmo..

Alguem consegue pensar em outras coisas?
Eu conseguindo limpar a message, estaria bom já...

EDIT:

Meu messages é um simples p:messages do primefaces:
<p:messages id="msg" autoUpdate="true" globalOnly="true" />
Criado 18 de novembro de 2013
Respostas 0
Participantes 1