(RESOLVIDO) rich:messages não exibe mensagens

Olá!

Estou adicionando uma mensagem de erro no FacesContext para ser exibida num rich:messages, porém a mensagem não aparece.

Uso composição de páginas jsf (não sei isso pode influenciar, pois cada página tem um rich:messages)

Segue código:

Numa classe adiciono a mensagem de erro:

baseBean.addErrorScreenMessage(context,"excecao.usuario.naoHaUsuario");

BaseBean:

    public void addErrorScreenMessage(final FacesContext context, final String key, final Object... params) {
        if(!verificarMensagemExiste(key)) {
            context.addMessage(key, this.getErrorFacesMessageResource(key, null, params));
        }
    }

Página:

...
 <ui:composition template="./../../menu.xhtml">
            <ui:define name="body">
                <div align="center">
                    <h:outputText id="cadastrarUsuarioLabel" value="#{m['usuario.cadastrarUsuario']}" styleClass="textBold2"/>
                </div>
                <br/><br/>
                <rich:tabPanel id="panelUsuario" selectedTab="#{usuarioBean.abaSelecionada}" switchType="server"  height="240">
                    <rich:tab id="tabUsuario" name="tabUsuario" label="#{m['usuario.usuario']}" actionListener="#{usuarioBean.doCarregarUsuario}">
                        <ui:include src="cadastroUsuario.xhtml"/>
                    </rich:tab>
                    <rich:tab id="tabDetalhe" name="tabDetalhe" label="#{m['usuario.detalhe']}" actionListener="#{usuarioBean.doCarregarDetalheUsuario}"
                        disabled="#{usuarioBean.desabilitarTabDetalhe}">
                        <ui:include src="detalheUsuario.xhtml"/>
                    </rich:tab>
                    <rich:tab id="tabNegocioEstipulante" name="tabNegocioEstipulante" label="#{m['usuario.negocioEstipulante']}" actionListener="#{usuarioBean.doCarregarNegocioEstipulante}"
                        disabled="#{usuarioBean.desabilitarTabNegocioEstipulante}">
                        <ui:include src="produtoContratoUsuario.xhtml"/>
                    </rich:tab>
                </rich:tabPanel>
...
                    <table border="0" width="100%">
                        <tr align="left">
                            <td><rich:messages id="mensagensErroPesquisaUsuario" errorClass="textErro" infoClass="textInformacao"/></td>
                        </tr>
                    </table>
...

Alguém tem idéia do que estou fazendo de errado?

BrigaduuuU!

Daer cara blz?

Tenta assim:

<a4j:outputPanel ajaxRendered="true">
    <rich:messages id="mensagensErroPesquisaUsuario" errorClass="textErro" infoClass="textInformacao"/>
</a4j:outputPanel>

Cara não né, sou mulher rsrsrs

Obrigada, mas não funcionou :frowning:

Desculpa, não li o seu nome -.-

Aqui eu uso da seguinte forma:

No MB

FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Usuário ou senha inválidos", null));

E no xhtml assim:

<a4j:outputPanel ajaxRendered="true"> <rich:messages /> </a4j:outputPanel>

Olá, Fernando.

Todos meus beans são filhos da minha classe BaseBean.
Não sei pq mas pela instancia que criei do BaseBean eu invocava o método addErrorScreenMessage e as mensagens não eram exibidas.
Aí eu troquei a instancia de BaseBean para um bean filho UsuarioBean (UsuarioBean extends BaseBean), e através do mesmo invoquei o método addErrorScreenMessage e funcionou!

Sinceramente eu não sei pq não funcionava chamando direto pelo BaseBean, mas ta funcionando!! hehehe

Brigaduu!