Temporizar mensagens do JSF

4 respostas
S

Olá, pessoal, minha dúvida é simples, a solução, não sei.
Bem, quero que, quando haja uma mensagem exibida pela tag h:message possa ter “temporizada”, ou seja, no momento que trato a mensagem deste modo:

FacesContext context = FacesContext.getCurrentInstance();
		try {
			new ClienteService().salvar(this.clienteEdicao);
			System.out.println("Salvando o cliente");
			FacesMessage msg = new FacesMessage("Cliente salvo com sucesso!");
			msg.setSeverity(FacesMessage.SEVERITY_INFO);
			context.addMessage(null, msg);
		} catch (Exception e) {
			e.printStackTrace();
			FacesMessage msg = new FacesMessage(
					"Erro inesperado ao salvar cliente!");
			msg.setSeverity(FacesMessage.SEVERITY_ERROR);
			context.addMessage(null, msg);
		}
	}

a minha tag h:messages:

<h:messages layout="table" showSummary="true" showDetail="false"
				globalOnly="true" styleClass="msgErro" infoClass="msgInfo"
				style="font-weight: bold" />

apareça durante, por exemplo 7 segundos, ou mais, talvez dependendo do tamanho da mensagem e desapareça após esse período, setando no bean, ou em qualquer lugar, talvez na própria teg, (essa é a solução que procuro) podem ajudar?
Se não for pedir muito, gostaria de fazer usando puramente JSF, sem Richfaces ou Primefaces ou coisas do tipo.

4 Respostas

CLEYSON

JavaScript pode?? :P

<h:outputScript name="jquery.js" />
<h:outputScript>
jQuery(document).ready(function() {
    jQuery('#global_messages').ready(function() {
        if ('#{view.viewId}' == '/index.xhtml' &amp;&amp; '#{facesContext.maximumSeverity}'.substring(0, 4) == 'INFO') {
            jQuery('#global_messages').delay(5000).slideUp(2000);
        }
    });
});
</h:outputScript>
 
<h:messages  id="global_messages" />

Referência: [url]https://community.jboss.org/thread/11703[/url]

S

Obrigado, Cleyson, não respondi ontem porque, por alguma razão o GUJ estava fora do ar, mas, Javascript é um começo, gostaria de saber algum do próprio JSF, mas já é um começo.
Muito obrigado.

S

Não sei o que estou errando, mas não estou sendo feliz.

S

Quando precisar, creio que também resolverá o seu problema se também for esse:
Achei extremamente útil a tag do richfaces:
A tag pool atualiza determindados componentes da página definidos anteriormente:

&lt;a4j:poll render="mensagem" interval="5000"&gt;&lt;/a4j:poll&gt;

			&lt;h:messages layout="table" showSummary="true" showDetail="false"
				id="mensagem" globalOnly="true" styleClass="msgErro"
				infoClass="msgInfo" style="font-weight: bold" /&gt;
Criado 30 de outubro de 2012
Ultima resposta 3 de nov. de 2012
Respostas 4
Participantes 2