Problema com messages - FacesMessage(s) foram enfileirados, mas podem não ter sido exibidos

5 respostas
W

Estou tendo um problema da segunte forma, tenho 2 telas uma de listar e outra de cadastrar.....quando cadastro preciso que na tela de listar apareça a mensagem de sucesso porem isso não está acontecendo .....segue codigos abaixo:

Fiz alguns testes e me veio este erro FacesMessage(s) foram enfileirados, mas podem não ter sido exibidos.....
public String comandoSalvarGerente()
   {
         if (usuario.getId() != null)
         {
            usuario.setEmail(usuario.getEmail().toLowerCase());
            usuario.getTipoUsuario().setId(EnumTipoUsuario.GERENTE.getCodBanco());
            admGeralDAO.updateGerente(usuario);

            FacesContext.getCurrentInstance().addMessage("mensagem" , new FacesMessage(FacesMessage.SEVERITY_INFO, "Gerente " + usuario.getNome() + "","Atualizado com Sucesso!"));
         }
         else
         {
            usuario.getTipoUsuario().setId(EnumTipoUsuario.GERENTE.getCodBanco());
            usuario.setEmail(usuario.getEmail().toLowerCase());
            admGeralDAO.saveGerente(usuario);

            FacesContext.getCurrentInstance().addMessage("mensagem" ,new FacesMessage(FacesMessage.SEVERITY_INFO, "Gerente", "Cadastrado com Sucesso!"));
         }
         return TELA_LISTAR_GERENTE;
   }
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition template="/template/template-usuario.xhtml"
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui"
    xmlns:rich="http://richfaces.org/rich">
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	
	<ui:define name="menu">
		<p:menuitem value="Gerente" onclick="#{mbAdmGeral.telaGerenciarGerente()}" icon="ui-icon-clipboard" url="/paginas/administradorGeral/gerente/listarGerente.jsf" />
		<p:menuitem value="Auxiliar Administrativo" onclick="#{mbAdmGeral.telaGerenciarAuxAdm()}" icon="ui-icon-clipboard" url="/paginas/administradorGeral/auxAdm/listarAuxAdm.jsf" />
	</ui:define>	
	
	<ui:define name="corpo">
		<h:form id="form">
			<h:outputStylesheet name="index.css" library="css" />
			<h:outputStylesheet name="template-interno-style.css" library="css" />
			
	    	<p:messages closable="true" id="mensagem" for="mensagem" showDetail="true" autoUpdate="true"/>
			
			<p:panel id="panel" styleClass="titulos_datatable"  header="GERENTES CADASTRADOS"  >
			
					<p:dataTable id="dtGerentes" value="#{mbAdmGeral.listaGerentes}" 
					var="gerente" emptyMessage="NENHUM GERENTE CADASTRADO." paginator="true" rows="5"  
                 	currentPageReportTemplate="TOTAL: #{mbAdmGeral.contGerente}" 
                 	paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" >

					<p:column headerText="LOGIN" style="width: 15%; font-weight: bold; font-color: red;" filterBy="#{gerente.login}">
						<h:outputText value="#{gerente.login.toUpperCase()}" />
					</p:column>
		
					<p:column headerText="NOME" style="width: 15%; font-weight: bold;" filterBy="#{gerente.nome}">
						<h:outputText style="text-align:center;" value="#{gerente.nome.toLowerCase()}"/>
					</p:column>
		
					<p:column headerText="TELEFONE" style="width: 15% ;text-align:center; font-weight: bold;" 
					filterBy="#{gerente.telefone.telefonePreferencial} #{gerente.telefone.telefoneCoorporativo} #{gerente.telefone.telefoneRecado} #{gerente.telefone.dddCoorporativo} #{gerente.telefone.dddPreferencial} #{gerente.telefone.dddRecado}">
						<div>
							<h:outputText converter="dddConverter" value="#{gerente.telefone.dddPreferencial}" />
							<h:outputText converter="telefoneConverter" value="#{gerente.telefone.telefonePreferencial}" />
						</div>
						
						<div>
							<h:outputText converter="dddConverter" value="#{gerente.telefone.dddCoorporativo}" />
							<h:outputText converter="telefoneConverter" value="#{gerente.telefone.telefoneCoorporativo}" />
						</div>
						
						<div>
							<h:outputText converter="dddConverter" value="#{gerente.telefone.dddRecado}" />
							<h:outputText converter="telefoneConverter" value="#{gerente.telefone.telefoneRecado != null? gerente.telefone.telefoneRecado : null}" />		
						</div>
					</p:column>
					
					<p:column headerText="SEXO" style="width: 2%; font-weight: bold;text-align:center" filterBy="#{gerente.sexo}">
						<h:outputText value="#{gerente.descricaoStatus}"  />
					</p:column>
					
					<p:column headerText="EMAIL" style="font-weight: bold; width:27%;" filterBy="#{gerente.email}">
						<h:outputText value="#{gerente.email}" style="font-size: 11.3px" />
					</p:column>
					
					<p:column headerText="OPÇÕES" style="font-weight: bold; width:11.3%; padding-bottom: 0px;text-align:center;" >
					
						<p:commandButton icon="ui-icon-search" oncomplete="visualizar.show()" title="Visualizar Gerente" action="#{mbAdmGeral.comandoVisualizar}" >
							<f:setPropertyActionListener value="#{gerente}" target="#{mbAdmGeral.usuario}" />  
						</p:commandButton>
						
						<p:commandButton icon="ui-icon-gear" title="Editar Gerente" action="#{mbAdmGeral.telaCadastrarGerente}" update="dtGerentes">
							<f:setPropertyActionListener value="#{gerente}" target="#{mbAdmGeral.usuario}" />  
						</p:commandButton>  
						  
						
						<p:commandButton icon="ui-icon-closethick" title="Excluir Gerente" oncomplete="popup.show()" update="dtGerentes">
							<f:setPropertyActionListener value="#{gerente}" target="#{mbAdmGeral.usuario}" />  
						</p:commandButton>  
					</p:column>
				</p:dataTable>
			</p:panel>
			
			<div align="right" class="botao_alinhamento_direito">			
				<p:commandButton id="cadastrarGerente" ajax="false" immediate="true" action="#{mbAdmGeral.telaCadastrarGerente}" value="Novo" icon="ui-icon-circle-plus" update="form, panel" />
			</div>
			
		</h:form>
		
		<p:dialog resizable="false" id="modalExcluir" showEffect="drop"
				  hideEffect="fade" modal="true" maximizable="drop"
				  minimizable="false" appendToBody="true" closable="false"
		 		  dynamic="true" header="Deseja Realmente Excluir ?" widgetVar="popup" >	
				  <h:form id="formDialog">
					<div align="center">
						<p:commandButton id="confirmar" value="Sim" oncomplete="popup.hide()" action="#{mbAdmGeral.comandoExcluirGerente}" />
			       		<p:commandButton id="cancelar" value="Não" onclick="popup.hide()" action="#{mbAdmGeral.inicializa}"/>   
		       		</div>
				  </h:form>
		</p:dialog>
		
		
		<p:dialog resizable="false" id="modalVisualizar2" showEffect="slide"
				  hideEffect="drop" modal="true" maximizable="drop"
				  minimizable="false" appendToBody="true" closable="false"
		 		  dynamic="true" header="Visualizar" widgetVar="visualizar" width="800" >	
				  <h:form id="formDialogVisualizar2">
			
						<div class="campos_botoes_formulario">
							<h:outputText style="margin-left:5px; margin-top 15px;" value="Nome: " />
							<p:inputText onblur="this.value = this.value.toUpperCase();" value="#{mbAdmGeral.usuario.nome}" id="nome" required="true" requiredMessage="Nome não Informado" label="Nome" style="width: 52%;" maxlength="100" disabled="true"/>

							<h:outputText style="margin-left:5px; margin-top 15px;" value="Data de Nascimento: " />
							<p:inputMask disabled="true" mask="99/99/9999" converter="dataConverter" value="#{mbAdmGeral.usuario.dataNascimento}" id="dtNascimento" required="true" requiredMessage="Data de Nascimento não Informado" label="Data de Nascimento" style="width: 16%;" />
						</div>

						<div class="campos_botoes_formulario">
						
							<h:outputText style="margin-left:5px; margin-top 15px;" value="Login: " />
							<p:inputText disabled="true" onblur="this.value = this.value.toUpperCase();" value="#{mbAdmGeral.usuario.login}" id="login" required="true" requiredMessage="Login não Informado" label="Login" style="width: 20%;margin-top 15px;" maxlength="40"/>
							
							<h:outputText style="margin-left:5px; margin-top 15px;" value="CPF: " />
							<p:inputMask disabled="true" mask="[CPF removido]" converter="cpfConverter" value="#{mbAdmGeral.usuario.cpf}" id="cpf" required="true" requiredMessage="CPF não Informado" label="CPF" style="width: 20%;"/>
					    	
							<h:outputText style="margin-left:5px; margin-top: 15px;" value="E-Mail: " />
							<p:inputText disabled="true" value="#{mbAdmGeral.usuario.email}" id="email" required="true" requiredMessage="Email não Informado" label="Email" style="width: 34%;" validator="emailValidator" maxlength="60"/>
						</div>
						
						<div class="campos_botoes_formulario" >
							<h:outputText style="margin-left:5px; margin-top 15px;" value="Sexo: " />
							<p:selectOneMenu disabled="true" id="sexo" required="true" requiredMessage="Sexo não Informado" styleClass="campo_comboBox" value="#{mbAdmGeral.usuario.sexo}" >
								<f:selectItem itemLabel="Selecione..." itemValue=""/>
								<f:selectItems value="#{mbAdmGeral.opcoesSexo}" var="opcao" itemLabel="#{opcao.descricao}" itemValue="#{opcao.codigo}"  noSelectionValue="Selecione"  />
							</p:selectOneMenu>
							
							<h:outputText style="margin-left:5px; margin-top 15px;" value="Endereço: " />
							<p:inputText disabled="true" onblur="this.value = this.value.toUpperCase();" value="#{mbAdmGeral.usuario.endereco.endereco}" id="endereco" required="true" requiredMessage="Endereço não Informado" label="Endereço" style="width: 64%;" maxlength="50"/>
						</div>
											
						<div class="campos_botoes_formulario">
						
							<h:outputText style="margin-left:5px; margin-top 15px;" value="Complemento: " />
							<p:inputText disabled="true" onblur="this.value = this.value.toUpperCase();" value="#{mbAdmGeral.usuario.endereco.complemento}" id="complemento" required="true" requiredMessage="Complemento não Informado" label="Complemento" style="width: 25%;" maxlength="50"/>
												
							<h:outputText style="margin-left:5px; margin-top 15px;" value="Bairro: " />
							<p:inputText disabled="true" onblur="this.value = this.value.toUpperCase();" value="#{mbAdmGeral.usuario.endereco.bairro}" id="bairro" required="true" requiredMessage="Bairro não Informado" label="Bairro" style="width: 25%;" maxlength="50"/>

													
							<h:outputText style="margin-left:5px; margin-top 15px;" value="CEP: " />
							<p:inputMask disabled="true" mask="99.999-999" converter="cepConverter" value="#{mbAdmGeral.usuario.endereco.cep}" id="cep" required="true" requiredMessage="CEP não Informado" label="CEP" style="width: 16.5%;"/>
						</div>
				
										
						<div class="campos_botoes_formulario">
							<h:outputText style="margin-left:5px;margin-top 15px;" value="Telefone Preferencial: " />
							<p:inputMask disabled="true" mask="99" value="#{mbAdmGeral.usuario.telefone.dddPreferencial}" id="dddPreferencial" maxlength="2" styleClass="campo_ddd" style="margin-left:13px;" title="Informe o DDD" required="true" requiredMessage="DDD Preferêncial não Informado" />
					
							<p:inputMask disabled="true" mask="9999-9999" converter="telefoneConverter" value="#{mbAdmGeral.usuario.telefone.telefonePreferencial}" id="telPreferencial" title="Informe o Nª de Telefone" required="true" requiredMessage="Telefone Preferêncial não Informado" label="Nome" styleClass="campo_telefone"/>
						</div>	
					
						<div class="campos_botoes_formulario">
							<h:outputText style="margin-left:5px;margin-top 15px;" value="Telefone Coorporativo: " />
							<p:inputMask disabled="true" required="true" requiredMessage="DDD Coorporativo não Informado" mask="99" value="#{mbAdmGeral.usuario.telefone.dddCoorporativo}" id="dddCoorporativo" maxlength="2" styleClass="campo_ddd" style="margin-left:5px;" title="Informe o DDD" />
														
							<p:inputMask disabled="true" mask="9999-9999" converter="telefoneConverter" title="Informe o Nª de Telefone" value="#{mbAdmGeral.usuario.telefone.telefoneCoorporativo}" id="telCooporativo" required="true" requiredMessage="Telefone Coorporativo não Informado" label="Nome" styleClass="campo_telefone"/>
						</div>
							
						<div class="campos_botoes_formulario">
							<h:outputText style="margin-left:5px;margin-top 15px;" value="Telefone Recado: " />
							<p:inputMask disabled="true" mask="99" title="Informe o DDD" value="#{mbAdmGeral.usuario.telefone.dddRecado}" id="dddRecado" maxlength="2" styleClass="campo_ddd" style="margin-left:38px;" required="true" requiredMessage="DDD para Recado não Informado"/>
							
							<p:inputMask disabled="true" mask="9999-9999" converter="telefoneConverter" value="#{mbAdmGeral.usuario.telefone.telefoneRecado}" id="telRecado" required="true" requiredMessage="Telefone para Recado não Informado" label="Nome" styleClass="campo_telefone"/>
						</div>	
					
						<p  >
							&lt;p:commandButton id="cancelar" value="Voltar" oncomplete="visualizar.hide()" ajax="false" action="#{mbAdmGeral.inicializa}" /&gt;
	    				</p>	
				  &lt;/h:form&gt;
		&lt;/p:dialog&gt;

	  &lt;/ui:define&gt;
	&lt;f:facet name="footer" /&gt;
&lt;/ui:composition&gt;

5 Respostas

V

Por favor, não poste títulos SOMENTE EM LETRAS MAIÚSCULAS nem peça urgência no fórum. Para conhecer mais sobre nosso código de conduta, leia:

A
Tenta assim:
public String comandoSalvarGerente() {
          FacesContext context = FacesContext.getCurrentInstance();// instância o FacesContext

         if (usuario.getId() != null)
         {
            usuario.setEmail(usuario.getEmail().toLowerCase());
            usuario.getTipoUsuario().setId(EnumTipoUsuario.GERENTE.getCodBanco());
            admGeralDAO.updateGerente(usuario);

            FacesContext.getCurrentInstance().addMessage(&quot;mensagem&quot; , new FacesMessage(FacesMessage.SEVERITY_INFO, &quot;Gerente &quot; + usuario.getNome() + &quot;&quot;,&quot;Atualizado com Sucesso!&quot;));
context.getExternalContext().getFlash().setKeepMessages(true);// adiciona esta linha.
         }
         else
         {
            usuario.getTipoUsuario().setId(EnumTipoUsuario.GERENTE.getCodBanco());
            usuario.setEmail(usuario.getEmail().toLowerCase());
            admGeralDAO.saveGerente(usuario);

            FacesContext.getCurrentInstance().addMessage(&quot;mensagem&quot; ,new FacesMessage(FacesMessage.SEVERITY_INFO, &quot;Gerente&quot;, &quot;Cadastrado com Sucesso!&quot;));
context.getExternalContext().getFlash().setKeepMessages(true);// aqui  também
         return TELA_LISTAR_GERENTE;
   }
W
aprendizweb:
Tenta assim:
public String comandoSalvarGerente() {
          FacesContext context = FacesContext.getCurrentInstance();// instância o FacesContext

         if (usuario.getId() != null)
         {
            usuario.setEmail(usuario.getEmail().toLowerCase());
            usuario.getTipoUsuario().setId(EnumTipoUsuario.GERENTE.getCodBanco());
            admGeralDAO.updateGerente(usuario);

            FacesContext.getCurrentInstance().addMessage(&quot;mensagem&quot; , new FacesMessage(FacesMessage.SEVERITY_INFO, &quot;Gerente &quot; + usuario.getNome() + &quot;&quot;,&quot;Atualizado com Sucesso!&quot;));
context.getExternalContext().getFlash().setKeepMessages(true);// adiciona esta linha.
         }
         else
         {
            usuario.getTipoUsuario().setId(EnumTipoUsuario.GERENTE.getCodBanco());
            usuario.setEmail(usuario.getEmail().toLowerCase());
            admGeralDAO.saveGerente(usuario);

            FacesContext.getCurrentInstance().addMessage(&quot;mensagem&quot; ,new FacesMessage(FacesMessage.SEVERITY_INFO, &quot;Gerente&quot;, &quot;Cadastrado com Sucesso!&quot;));
context.getExternalContext().getFlash().setKeepMessages(true);// aqui  também
         return TELA_LISTAR_GERENTE;
   }

Agora ele apresenta a Mensagem sim mas não volta para a tela anterior......?

A

como assim não retorna a tela anterior?

T

o certo depois do cadastro é vc direcionar para
uma lista e lá ter o botão adicionar (Novo) e na lista ter um editar (caso queira editar)

o que está acontecendo, explique melhor

Criado 9 de dezembro de 2012
Ultima resposta 9 de dez. de 2012
Respostas 5
Participantes 4