Richafaces / messages / imagem

Pessoal, estou com a seguinte dificuldade: minha validação esta funcionando , porém preciso colocar antes da mensagem de alerta um icone … o problema é q o icone já aparace qdo abre a tela, e preciso q ele só aparaça em frente da mensagem de alerta, caso haja.

Alguem sabe a solução??

Grata

Izaura,

No seu caso eu acho que está faltando colocar o f:facet, para informar o tipo de erro que a imagem irá aparecer.
Exemplo retirado da documentação oficial: http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/rich_message.html

<rich:message for="id" passedLabel="No errors" showSummary="true">
      <f:facet name="errorMarker">
            <h:graphicImage url="/image/error.png"/>
      </f:facet>
      <f:facet name="passedMarker">
            <h:graphicImage url="/image/passed.png"/>
      </f:facet>    
</rich:message>     

Eu mesmo já usei essa feature em um projeto, porém depois de um tempo o cliente pediu coisas a mais na mensagem de erro e então eu precisei criar um componente específico para isso (até que foi bem fácil criar o componente)

Espero ter ajudado

Olá Jair!

Fiz seguindo sua sugestão, só q agora não aparece mais o icone, nem qdo abre a pagina e nem qdo dá algum alerta (aparece só a mensagem)

<rich:messages ajaxRendered=“true” globalOnly=“true” >
<f:facet name=“passedMarker”>
<h:graphicImage value="#{images.icon_msg_1}" />
</f:facet>
<f:facet name=“errorMarker”>
<h:graphicImage value="#{images.icon_msg_2}" />
</f:facet>
</rich:messages>

Sabe o q pode ser??

Resolvido!

Izaura boa noite,

Sei que o tópico está um pouco antigo, mas estou com o mesmo problema é não consigo resolver de jeito nenhum!
Como vc resolveu?

valew!!!

Izaura boa noite,

Sei que o tópico está um pouco antigo, mas estou com o mesmo problema é não consigo resolver de jeito nenhum!
Como vc resolveu?

valew!!![/quote]

Olá Dixavado!!

No xhtml:

<div id=“contextSystemMessage”>
<rich:messages ajaxRendered=“true” globalOnly=“true” >

&lt;f:facet name="warnMarker" &gt;   
&lt;h:graphicImage value="#{images.iconMessagesInformation}" styleClass="aligncontextSystemMessage"/&gt;   
&lt;/f:facet&gt;   

&lt;f:facet name="infoMarker" &gt;   
&lt;h:graphicImage value="#{images.iconMessagesSuccess}" styleClass="aligncontextSystemMessage"/&gt;   
&lt;/f:facet&gt; 

</rich:messages>
</div>

Obs.: Vc tb pode definir uma imagem para [color=blue]fatalMarker [/color]e [color=blue]errorMarker[/color]

No metodo:

facesMessages.add(Severity.WARN, “#{messages[‘operation.noResult’]}”);

Obs: O Severity indica o tipo de erro.

Qq dúvida, seu eu puder ajudar, estou as ordens.

Iza

Izaura boa noite,

Sei que o tópico está um pouco antigo, mas estou com o mesmo problema é não consigo resolver de jeito nenhum!
Como vc resolveu?

valew!!![/quote]

Olá Dixavado!!

No xhtml:

<div id=“contextSystemMessage”>
<rich:messages ajaxRendered=“true” globalOnly=“true” >

&lt;f:facet name="warnMarker" &gt;   
&lt;h:graphicImage value="#{images.iconMessagesInformation}" styleClass="aligncontextSystemMessage"/&gt;   
&lt;/f:facet&gt;   

&lt;f:facet name="infoMarker" &gt;   
&lt;h:graphicImage value="#{images.iconMessagesSuccess}" styleClass="aligncontextSystemMessage"/&gt;   
&lt;/f:facet&gt; 

</rich:messages>
</div>

Obs.: Vc tb pode definir uma imagem para [color=blue]fatalMarker [/color]e [color=blue]errorMarker[/color]

No metodo:

facesMessages.add(Severity.WARN, “#{messages[‘operation.noResult’]}”);

Obs: O Severity indica o tipo de erro.

Qq dúvida, seu eu puder ajudar, estou as ordens.

Iza[/quote]

Izaura bom dia,

Quando coloco value="#{images.iconMessagesInformation}", recebo um msg de erro. images é uma variável ou algo que você declara no código?
Estou tentando fazer um ícone aparecer quando o usuário efetua um cadastro com sucesso ou quando acontece algum erro. Veja o meu código:


&lt;rich:messages layout="list" infoLabelClass="messageInfo" errorLabelClass="messageError"&gt;
				&lt;f:facet name="infoMaker"&gt;
					 &lt;h:graphicImage value="/imagens/save_16.gif" /&gt;
				&lt;/f:facet&gt;
				&lt;f:facet name="errorMaker"&gt;
					&lt;h:graphicImage value="/imagens/delete_16.gif" /&gt;
				&lt;/f:facet&gt;
			&lt;/rich:messages&gt;

A mensagem de sucesso ou erro aparece, mas o ícone não.

obrigado,
Tiago Crizanto

Oi!!!

No meu caso, tenho um properties onde defino as imagens … no seu caso tente colocar como indicado abaixo (URL).

Exemplo:
<h:graphicImage url="/image/passed.png"/>

Izaura

[quote=izaura]Oi!!!

No meu caso, tenho um properties onde defino as imagens … no seu caso tente colocar como indicado abaixo (URL).

Exemplo:
<h:graphicImage url="/image/passed.png"/>

Izaura[/quote]

Tá dificil!! rsrsrsrs… já tentei colocar <h:graphicImage url="/image/passed.png"/> e <h:graphicImage value="/image/passed.png"/> e essa imagem não aparece!

Como vc fez esse properties definindo imagens?

obrigado!

Tente colocar 1 ponto ou 2 pontos antes do diretorio image.

<h:graphicImage url="./image/passed.png"/>

ou

<h:graphicImage url="…/image/passed.png"/>

Tem casos q qdo n preciso usar o properties eu faço da forma acima.

Se n rolar, eu posto o properties (tenta primeiro assim, pq é mais complicadinho te explicar o properties)

Obs.: Se no lugar da figura esta aparecendo só aquele X mais a mensagem aparecendo, é quase certo que é problema no caminho informado.

Izaura

É Izaura! O bixo tá pegando pro meu lado viu! rsrsrsrs… O problema é que nem o X de quando a url está errada aparece.
Bem vou postar meu código na ultima esperança rsrsrs… Mas agradeço muito pela ajuda!

Bibliotecas que importo na página jsp

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>

Código da página JSP

<f:view>
		<h:form>
			<center>Cadastro de usuário</center>
			<rich:messages layout="list" infoLabelClass="messageInfo" errorLabelClass="messageError">
				<f:facet name="infoMaker">
					 <h:graphicImage url="imagens/save_16.gif" />
				</f:facet>
				<f:facet name="errorMaker">
					<h:graphicImage url="imagens/delete_16.gif" />
				</f:facet>
			</rich:messages>
			
			<h:panelGrid columns="3">
				<h:outputText value="Nome: " />
				<h:inputText id="nome" value="#{controladorBean.usuario.nome }" size="20" required="true"/>
				<h:message for="nome" style="color: darkned" />
				
				<h:outputText value="Username: " />
				<h:inputText id="username" value="#{controladorBean.usuario.username }" size="20" required="true"/>
				<h:message for="username" style="color: darkned" />
				
				<h:outputText value="Senha: " />
				<h:inputSecret id="senha" value="#{controladorBean.usuario.senha }" size="10" required="true"/>
				<h:message for="senha" style="color: darkned" />
			</h:panelGrid>
				<h:commandButton value="salvar" action="#{controladorBean.salvarUsuario}" accesskey="S"/>
				<h:commandButton value="Cancelar" />
				<br><br>
				<h:commandLink value="Voltar" action="index"></h:commandLink>
		</h:form>
	</f:view>

Código do bean controlador

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.paginapessoal.modelo.Usuario;
import com.paginapessoal.util.HibernateUtil;
import com.paginapessoal.util.SessionUtil;

public class ControladorBean {
	private Usuario usuario = new Usuario();
	
	public String salvarUsuario(){
		Session session = HibernateUtil.getSession();
		Transaction t = session.beginTransaction();
		
		try{
			session.merge(usuario);
			t.commit();
			SessionUtil.addSuccessMessage("OperacaoSucesso");
			usuario = new Usuario();
		}catch(Exception e){
			t.rollback();
			SessionUtil.addErrorMessage("OperacaoFracasso");
		}finally{
			session.close();
		}
		
		return null;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setusUario(Usuario usuario) {
		this.usuario = usuario;
	}
}

E mais uma vez obrigado!