addMessage na fase RENDER_RESPONSE do JSF

Pessoal, estou com um problema que é o seguinte, eu tenho um método no Managed Bean que vai retornar a lista para montar um combo. Se der erro nesse método eu adiciono uma mensagem, so que ela não aparece na tela.
Eu imagino que seja porque o método é executado na fase de renderização.

É isso mesmo? Existe alguma alterantiva?

parace um problema semelhante a esse, que não teve resposta:
http://www.guj.com.br/posts/list/100167.java

Valeu.

FacesContext context = FacesContext.getCurrentInstance();
FacesMessage fm = new FacesMessage(severity, msg, detail);
context.addMessage(id, fm);

EDIT: No Jedi tem uma explicação bem legal disso ai no curso de JSF!

http://www.dfjug.org/DFJUG/jedi/index.jsp

Sim eu adiciono a mensagem dessa forma que você mostrou. Porém nesse caso específico com combo ela não aparece.

mas não é pra usar com combo que isso serve.

Beleza, é exatamente isso que eu quero saber, como enviar uma mensagem nesse caso (não só combo).

o meu código é mais ou menos assim:

[code]<h:messages id=“message” globalOnly=“true” layout=“table” showDetail=“true” />

<h:selectOneMenu id=“combo” value="#{bean.codigoCombo}" required=“true”>
<f:selectItems value="#{bean.montaCombo}"/>
</h:selectOneMenu>[/code]

[code]public List getMontaCombo() {

//codigo para montar o combo...

//se deu erro
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Erro ao montar combo.")); 

}[/code]

Abraços.

Então pessoal, alguém teria uma dica para em dar?

Parece um problema comum, então alguém já deve ter passado por isso.

Obrigado.

O problema é que seu método é chamado na fase de RENDER_RESPONSE, e as mensagens de erros já foram renderizadas antes da chamada do método pois o componente h:messages foi inserido antes.

Dá uma olhada aqui,
http://www.martinahrer.at/blog/2008/03/05/keep-rich-faces-modal-panel-open-when-form-validation-errors-occur/

Abraços e boa sorte.