Caixa de Mensagem em JSF + RICHFACES + AJAX

6 respostas
L

Olá pessoal,

Como eu faço para criar uma caixa de mensagem que apareça no meio da tela quando um usuário clica no botão, e ai
informa uma mensagem assim: “Cadastrado com sucesso!”.
ou um “Carregando…” quando sai da tela de login e vai para página principal.

Obrigado,

Att,

Lymoreira.

6 Respostas

G

Uma maneira de fazer isso (não sei se é a melhor maneira), é usando um modalPanel.

Crie um rich:modalPanel na sua página contendo a informação que você quer exibir.

<rich:modalPanel id="mensagem">
     <h:outputText value="Cadastro Realizado com sucesso!" />
     <h:commandButton value="Fechar" onclick="javascript:Richfaces.hideModalPanel('mensagem')" />
</rich:modalPanel>

E para exibir o modalPanel basta usar, em algum evento de algum componente (possivelmente o botão de salvar) o mesmo código do “onclick” do exemplo, mas trocando o “hide” por “show”

A

cara,

o modal de status,

<a4j:status id="statusAguarde" onstart="Richfaces.showModalPanel('ajaxLoadingModalBox',{top:200})" 
			     							   onstop="Richfaces.hideModalPanel('ajaxLoadingModalBox')"/>
			
				<rich:modalPanel id="ajaxLoadingModalBox" autosized="true" >
				     <div class="loader">
						CARREGANDO
						<h:graphicImage id="imgLoader" value="/images/loader.gif"/>
					</div>
				</rich:modalPanel>

e para modal de mensagem

<rich:modalPanel id="mensagem">  
     <h:messages/>
     <h:commandButton value="Fechar" onclick="javascript:Richfaces.hideModalPanel('mensagem')" />  
</rich:modalPanel>

vc vai ter que colocar em cada button seu a propriedade oncomplete para abrir o modal mensagem e setar as mensagens no MB assim

facesMessages.add(Severity.INFO, "Cadastrado com sucesso!");
facesMessages.add(Severity.ERROR, "Erro ao cadastrar");

t+

L

e se eu quiser só printar uma mensagem na frente do campo que esá errado, como eu faço?

valeu.

A

ai vc vai ter que colocar um <h:message/> para cada componente.

t+

L

É assim mesmo a implementação do FacesMessage, porque aqui ele não aceita desse jeito?

A

do jeito que eu te passei, seria de uma forma global, se vc quer uma mensagem customizada para cada componente, da uma olhada nesse exemplo,
http://www.mkyong.com/jsf2/customize-validation-error-message-in-jsf-2-0/

t+

Criado 7 de novembro de 2011
Ultima resposta 8 de nov. de 2011
Respostas 6
Participantes 3