[RESOLVIDO] FacesMessages não aparecem mesmo depois de retirar Prettyfaces

E ai pessoal, blz?

Seguinte, na empresa onde trabalho estamos desenvolvendo um projeto web JPA + Primefaces 3.2 + Jsf 2.0;

Já em fase de conclusão, foi solicitado a reescrita das Url’s para serem mais amigávei. Pesquisei e acabei por
adotar a Prettyfaces.

Entretanto, não resolveu o problema que nós tinhamos e ainda fez o upload parar de funcionar, dentre o outrar coisas.

Dentre elas, as mensagens do FacesMessages pararam de ser exibidas ao se usar o ajax = false nos botões/links.
Até aí tudo bem, pois sabia que ao invés de reencaminhar, a biblioteca utilizava do redirecionamento para reescrever a URL.

Aí, tirei a biblioteca, limpei as referências para a mesma e NADA! O JSF não voltou ao seu padrão que é reencaminhar e não direcionar!
Com isso nada das minhas FacesMessages aparecerem!

Já fiz de tudo, criei um novo projeto, reinstalei o JSF, reinstalei a IDE, reinstalei o servidor e nada! Não funciona!

Testando outro projeto que eu tenho, funcionou normal.

Vocês tem ideia do que possa ser?

Obrigado!

Seu outro projeto tem essas mesmas tecnologias? Se sim, estão na mesma versão?

Está utilizando o Maven? Se tiver, pode ser que você tenha baixado uma versão mais atual de alguma biblioteca e ela tenha vindo com alguma incompatibilidade ou problema e você não percebeu…

  1. A ação é um ajax? e a validação é retornada na mesma tela?
  2. FacesMessages que você quer mostrar vem de outra página(redirect)?
  3. É um problema isolado? (Veja se tem o <p:messages id=“messages” /> no xhtml)

Edit: Já usei o PrettyFaces e não tive problemas com o FacesMessages ou Ajax…

[quote]Seu outro projeto tem essas mesmas tecnologias? Se sim, estão na mesma versão?
Está utilizando o Maven? Se tiver, pode ser que você tenha baixado uma versão mais atual de alguma biblioteca e ela tenha vindo com alguma incompatibilidade ou problema e você não percebeu…[/quote]

O outro projeto tem sim as mesmas tecnologias nas mesmas versões;
Já revisei todas as importações e arquivos xml do projeto e nada.

[quote]1. A ação é um ajax? e a validação é retornada na mesma tela?
2. FacesMessages que você quer mostrar vem de outra página(redirect)?
3. É um problema isolado? (Veja se tem o <p:messages id=“messages” /> no xhtml)

Edit: Já usei o PrettyFaces e não tive problemas com o FacesMessages ou Ajax…[/quote]

Utilizo o ajax=false em dois casos:

<h:form styleClass="login" rendered="#{!controleAcesso.acessoLiberado and controleAcesso.checarConexao()}"> <p:panelGrid columns="2" styleClass="login"> <h:outputText value="Usuário:"/><p:inputText id="txtUsuario" value="#{controleAcesso.login}" maxlength="20" required="true" requiredMessage="Favor informar o usuário"/> <h:outputText value="Senha:"/><p:password id="txtSenha" value="#{controleAcesso.senha}" maxlength="20" promptLabel="" required="true" requiredMessage="Favor informar a senha"/> <h:outputText value=""/><p:commandButton action="#{controleAcesso.entrar()}" value="Entrar" ajax="false"/> </p:panelGrid> </h:form>

...
<p:commandButton style="margin-right: 3px" title="Salvar" action="#{documents.salvarAlteracao()}" icon="ui-icon-disk" rendered="#{documents.editar and documents.modoEdicao}" update=":frmTree :frmDocumento" 
ajax="false"/>
...

No primeiro caso, utilizo apenas o ajax=false. Eu esperava que fosse feito o forward padrão do JSF, pois a Prettyfaces já havia sido retirada.

No segundo caso, utilizo para salvar o anexo juntamente com as alterações do documento em questão.

OBS: Nos demais casos, onde o ajax está ativado, ajax=true, as mensagens aparecem normalmente.

Eu coloco o <p:messages> no template:

<p:growl id="messages" autoUpdate="true" life="5000" />

Outra coisa a destacar:

Ao se setar a propriedade KeepMessages,

[code]<c:set target="#{flash}" property=“keepMessages” value=“true” />

ou

FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(true);[/code]

as mensagens são preservadas
entretanto são acumuladas e aparecem em todas as páginas, por exemplo:

Se o usuário errar o login, com essa propriedade ativa, as mensagens vao empilhando e poluindo a tela.
Quando o mesmo acessa, nas demais páginas do sistema elas continuam aparecendo.

Por conta disso, fica inviável utilizá-la.

Já tentei também limpar a lista de mensagens e não consegui nada! =(

Consegui resolver.
O problema estava ao se chamar uma função script no onload do body;
Troquei para usar o unload e pronto! =)