Não estou conseguindo informar a mensagem estou fazendo algo errado ? Não da erro no console e quando coloco para debugar ele passa
pela mensagem sem dar erro.
if (gerencia.getId_gerencia() == null ){
dao.adiciona(gerencia);
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Gerência cadastrada com sucesso!"));
} else {
dao.atualiza(gerencia);
}
você colocou na tela o componente para mostrar a mensagem ?
L
luis.feitoza
Coloquei o
<p:messages /> ?
A
andre.froes
Não está errado, mas atente para isso:
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Chamada deve ter no mínimo 10 caracteres.", "Chamada deve ter no mínimo 10 caracteres."));
1° - Você está com o componente <p:messages configurado na página?
2° - Você está dando update no form aonde está o messages ou deixou-o com autoUpdate=“true”?
como está a sua estrutura de form?>
L
luis.feitoza
<?xml version="1.0" encoding="ISO-8859-1" ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"xmlns:ui="http://java.sun.com/jsf/facelets"xmlns:h="http://java.sun.com/jsf/html"xmlns:p="http://primefaces.prime.com.tr/ui"><ui:compositiontemplate="/_template_geral.xhtml"><ui:definename="corpo"><h:formid="gerencia"><p:fieldsetlegend="Cadastro de Gerência"><p:messages/><h:panelGridcolumns="2"><h:outputLabelvalue="ID:"rendered="#{gerenciaBean.gerencia.id_gerencia != null}"/><h:inputTextvalue="#{gerenciaBean.gerencia.id_gerencia}"readonly="true"rendered="#{gerenciaBean.gerencia.id_gerencia != null}"/><h:outputLabelvalue="Nome Gerência: "for="nome"/><h:inputTextid="nome"value="#{gerenciaBean.gerencia.nomeGerencia}"required="true"requiredMessage="Nome da gerência obrigatorio!"/><h:outputLabelvalue="Descrição:"for="descricao"/><h:inputTextareaid="descricao"value="#{gerenciaBean.gerencia.desc_gerencia}"required="true"requiredMessage="Descrição obrigatorio!"/></h:panelGrid><h:commandButtonvalue="Salvar"action="#{gerenciaBean.gravar}"/></p:fieldset></h:form></ui:define></ui:composition></html>
DAO<Gerencia> dao = new DAO<Gerencia>(Gerencia.class);
if (gerencia.getId_gerencia() == null ){
dao.adiciona(gerencia);
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Gerência cadastrada com sucesso!", "Gerência cadastrada com sucesso!"));
} else {
dao.atualiza(gerencia);
}
A
andre.froes
esse é o problema então, primeiro, tu está utilizando o h:commandButton, para fazer o refresh parcial tu tem que usar o p:commandButton
no teu p:messages tu pode deixar assim:
<p:messagesautoUpdate="true"/>
e já deve resolver o caso
L
luis.feitoza
Fiz as devidas alterações e continua não aparecendo.
L
luis.feitoza
publicStringgravar(){DAO<Gerencia>dao=newDAO<Gerencia>(Gerencia.class);if(gerencia.getId_gerencia()==null){dao.adiciona(gerencia);FacesContext.getCurrentInstance().addMessage(null,newFacesMessage(FacesMessage.SEVERITY_INFO,"Gerência cadastrada com sucesso!","Gerência cadastrada com sucesso!"));}else{dao.atualiza(gerencia);}gerencias=newDAO<Gerencia>(Gerencia.class).listaTodos();this.gerencia=newGerencia();return"gerencia?faces-redirect=true";}
O problema por não aparecer pode ser que após a gravação eu retorno para a mesma pág. ?
Vou fazer as devidas alterações, porque estava deixando somente com o action e não com o actionListener.
L
luis.feitoza
Eu tentei usar um componente usando o ActionListener para poder aparecer um growl mais não funfou, eu preciso de algum .jar para aparecer as mensagens do faces? Pois estava vendo em um outro topico que em uma determinada ocasião ele precisou utilizar esses dois .jar el-api.jar e el-impl.jar, mais vem a ser meu caso utilizalos?
L
luis.feitoza
Então galera,
Estou tentando fazer um teste simples. Esta tudo mapeado corretamento e quando tento fazer o texto do componente da este erro.
Então galera depois de quebrar um pouco a cabeça eu consegui resolver, talvez não seja da forma coerente (boas praticas) mais resolvendo
talvez seja o que importa, seguem o codigo.
view:
<htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"xmlns:ui="http://java.sun.com/jsf/facelets"xmlns:h="http://java.sun.com/jsf/html"xmlns:p="http://primefaces.prime.com.tr/ui"><ui:compositiontemplate="/_template_geral.xhtml"><ui:definename="corpo"><h:formid="gerencia"><p:fieldsetlegend="Cadastro de Gerência"><p:messagesid="teste"/><h:panelGridcolumns="2"><h:outputLabelvalue="ID:"rendered="#{gerenciaBean.gerencia.id_gerencia != null}"/><h:inputTextvalue="#{gerenciaBean.gerencia.id_gerencia}"readonly="true"rendered="#{gerenciaBean.gerencia.id_gerencia != null}"/><h:outputLabelvalue="Nome Gerência: "for="nome"/><h:inputTextid="nome"value="#{gerenciaBean.gerencia.nomeGerencia}"required="true"requiredMessage="Nome da gerência obrigatorio!"/><h:outputLabelvalue="Descrição:"for="descricao"/><h:inputTextareaid="descricao"value="#{gerenciaBean.gerencia.desc_gerencia}"required="true"requiredMessage="Descrição obrigatorio!"/></h:panelGrid><p:commandButtonvalue="Salvar"action="#{gerenciaBean.gravar}"ajax="false"/></p:fieldset></h:form></ui:define></ui:composition></html>
Bean:
publicStringgravar(){DAO<Gerencia>dao=newDAO<Gerencia>(Gerencia.class);if(gerencia.getId_gerencia()==null){dao.adiciona(gerencia);FacesContext.getCurrentInstance().addMessage(":gerencia:teste",newFacesMessage(FacesMessage.SEVERITY_INFO,"Sample info message","PrimeFaces rocks!"));}else{dao.atualiza(gerencia);}gerencias=newDAO<Gerencia>(Gerencia.class).listaTodos();this.gerencia=newGerencia();return"gerencia";}
Mais uma vez obrigado a galera que ajudou e ao blog em si.