izaura
Agosto 21, 2009, 3:40pm
#1
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
izaura
Agosto 21, 2009, 3:54pm
#3
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??
izaura:
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
Setembro 28, 2009, 8:43am
#6
Dixavado:
[quote=izaura]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!!![/quote]
Olá Dixavado!!
No xhtml:
<div id=“contextSystemMessage”>
<rich:messages ajaxRendered=“true” globalOnly=“true” >
<f:facet name="warnMarker" >
<h:graphicImage value="#{images.iconMessagesInformation}" styleClass="aligncontextSystemMessage"/>
</f:facet>
<f:facet name="infoMarker" >
<h:graphicImage value="#{images.iconMessagesSuccess}" styleClass="aligncontextSystemMessage"/>
</f:facet>
</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” >
<f:facet name="warnMarker" >
<h:graphicImage value="#{images.iconMessagesInformation}" styleClass="aligncontextSystemMessage"/>
</f:facet>
<f:facet name="infoMarker" >
<h:graphicImage value="#{images.iconMessagesSuccess}" styleClass="aligncontextSystemMessage"/>
</f:facet>
</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:
<rich:messages layout="list" infoLabelClass="messageInfo" errorLabelClass="messageError">
<f:facet name="infoMaker">
<h:graphicImage value="/imagens/save_16.gif" />
</f:facet>
<f:facet name="errorMaker">
<h:graphicImage value="/imagens/delete_16.gif" />
</f:facet>
</rich:messages>
A mensagem de sucesso ou erro aparece, mas o ícone não.
obrigado,
Tiago Crizanto
izaura
Setembro 28, 2009, 9:06am
#8
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!
izaura
Setembro 29, 2009, 8:06am
#10
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!