JSF - Adicionar Mensagens

4 respostas
renomoto

E ae pessoal!

Estou com problemas de adicionar uma mensagem em um objeto <h:message>

FacesMessage message = new FacesMessage("Mensagem");  
message.setSeverity(FacesMessage.SEVERITY_ERROR);  
FacesContext.getCurrentInstance().addMessage("id", message);
&lt;h:message for="id"/&gt;

Isso não funcionou!
Alguém sabe pq? Estou utilizando JSF 1.2

Eu já li o tópico abaixo:
http://www.guj.com.br/posts/list/45552.java

Obrigado!

4 Respostas

mauriciofalves

Por exemplo, se voce tem um <h:inputText id=“nome” /> , o message deve ser assim: <h:message for=“nome” />

Se entendi a pergunta isso resolve… qualquer coisa avisa aí…

renomoto

Não, eu jogando uma mensagem especifica do meu MB com o código que eu coloquei acima, assim qdo eu passar quero exibi-la em um <h:message> especifico.
Entendeu?

L

Isso tem tudo pra não funcionar. Você está querendo fazer uma ligação através de uma string de id, só que o faces gera um id diferente do id do componente, o que você tem que fazer é

1- Colocar um binding no input, assim:

<h:inputText id="nome" binding="#{mbean.input}" value="#{mbean.value}"/>

2- Colocar o componente no ManagedBean, assim:

private UIInput input;

public UIInput getInput() {
	return input;
}

public void setInput(UIInput input) {
	this.input = input;
}

e 3- trocar a última linha da validação por isso:

FacesContext.getCurrentInstance().addMessage(input.getId(), message);
renomoto

Blz, mas achei um outro jeito mais facil.

Valeu!

Criado 19 de outubro de 2007
Ultima resposta 19 de out. de 2007
Respostas 4
Participantes 3