Boa tarde caros amigos e amigas do GUJ, tenho uma aplicação em JSF2/FACELETS/… e nela estou com o seguinte problema:
Ao transitar de uma página X, após sistema realizar um processamento, e redirecionar para página Y, preciso mostrar uma mensagem, por exemplo:
‘Protocolo enviado com sucesso!’
Para isso estou usando o componente
<p:growl id="msg" showDetail="true"/>
No botão que dispara a ação, no atributo update estou colocando o id ‘msg’, conforme exemplo do site do Prime Faces.
No mbean também estou adiconando a mensagem conforme indicado no site, enfim, ele funciona quando continuo na mesma paǵina após a ação,
noutro caso, transitando entre páginas ele não funciona. Ja coloquei ele na página Y, tentei dar forward explícito mas infelizmente a quantidade de informações
que possuo não é suficiente para uma análise certeira sobre esse problema.
O redirect mata tudo que você tenha colocado no request (como mensagens para ser exibido para o usuário).[/quote]
Vou testar aqui retirando o redirect, lembrando que o escopo do meu MBEAN é session, tb não uso navigation rules
e no comandButton que dispara a ação, uso actionListener…
O redirect mata tudo que você tenha colocado no request (como mensagens para ser exibido para o usuário).[/quote]
Vou testar aqui retirando o redirect, lembrando que o escopo do meu MBEAN é session, tb não uso navigation rules
e no comandButton que dispara a ação, uso actionListener…[/quote]
Tudo bem que ele é session, ele vai guardar todos os dados dentro dele (atributos).
Mas o ato de enviar uma mensagem não tem influência alguma da parte do MB (Requested, Session, Application). A não ser que você guarde a mensagem como um atributo String do seu MB e acabe por exibi-la.
Se você estava utilizando a navegação via redirect, imagino eu que você esta utilizando ajax. Estou certo? (coloca o código de como está o botão/link agora).
Tente retirar o ajax e fazer uma navegação normal, caso eu esteja certo. Se não a gente pensa em outra coisa.
Infelizmente não funcionou, vou ver se consigo uma outra opção de componente para a minha necessidade… mas o padrão do meu sistema é o growl… Vamos ver no que dá… valew
Não sei se o problema ja foi resolvido, mas o growl com redirect nao funciona como nosso amigo disse. Então é necessario usar o flash
Aqui quando uso redirect e quero exibir o growl faço assim
facesContext.addMessage("cadOA", new FacesMessage("Objeto Cadastrado com Sucesso"));
facesContext.getExternalContext().getFlash().setKeepMessages(true); //AQUI ELE MANTEM A MENSAGEM
return "addToWel";
Desculpe, só quis ajudar porque encontrei somente agora a resposta. Eu não tinha visto a página 2, logo não tinha visto a resposta. Só depois que eu postei que apareceu acima.