Olá gente, tudo certo? Bem, estou com problemas na minha aplicação. Tenho várias telas de cadastros em um projeto que estou desenvolvendo (o projeto é uma estilo uma biblioteca), filtros, relatórios, etc. O que ocorre é o seguinte: quando vou cadastrar ou “mexer” em qualquer coisa em qualquer tela, consigo SOMENTE UMA VEZ, depois TENHO que dar um F5 para a tela atualizar. Exemplo: Vou excluir um exemplar do acervo…
Clico em excluir, perfeito… vou excluir mais um exemplar… (lascou)… preciso dar um F5…
Então, queria saber se alguém poderia me ajudar.
Agradeço desde já.
use a propriedade update de seus componentes JSF indicando o id dos componentes que precisam ser atualizados.
Ok. Vou testar aki. Daki a pouco posto o resultado 
poderia postar o código mostrando o seu botão/ação e o elemento que deve ser atualizado?
[quote=felipe_gdr]poderia postar o código mostrando o seu botão/ação e o elemento que deve ser atualizado?[/quote] Sim. Já posto, vou postar uma tela bem simples de cadastro. Sendo esta de Tipo de Material.
Cara, quando clico em EXCLUIR POR EXEMPLO, ele apaga o registro da tabela…mas quando eu for excluir OUTRO REGISTRO… a tela tipo que “CONGELA” e só atualiza após eu dar um F5…
Abaixo está toda a tela de Tipo do material:
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:treap="http://java.sun.com/jsf/composite/treap"
xmlns:p="http://primefaces.org/ui">
<body>
<form id="form">
<ui:composition template="./default_layout_with_menu.xhtml">
<ui:define name="titulo-pagina">
Tipo do Material
</ui:define>
<ui:define name="content">
<treap:ajaxStatus/>
<p:tabView id="tab" activeIndex="#{tipoMaterialJsfBean.indiceAbaSelecionada}" widgetVar="tab1">
<p:tab title="Listagem" id="tabList">
<p:panel header="Filtros de Consulta" id="parametros" toggleable="true" collapsed="true">
<treap:msgdica msg="Informe um parâmetro para a consulta. Deixe os campos em branco para exibir todos os registros."/>
<p:growl id="grow1" life="4000"/>
<table border="0" cellpadding="2" cellspacing="0" style="margin-right: 40px">
<tr>
<td align="right">Descrição:</td>
<td>
<p:inputText size="20" value="#{tipoMaterialJsfBean.tipoDescricao}"/><br/><br/>
</td>
</tr>
<tr>
<td>
<p:commandButton actionListener="#{tipoMaterialJsfBean.atualizar}" value="Consultar" update="@form" process="parametros" image="search"/>
</td></tr>
</table>
<p:ajaxStatus style="position: fixed; top: 40%; left: 35%; background-color: #ffffff">
<f:facet name="start">
<p:graphicImage value="/resources/img/ajaxloadingbar.gif" /><br/>
<p:spacer width="3"/> Processando...
</f:facet>
<f:facet name="complete">
<h:outputText value="" />
</f:facet>
</p:ajaxStatus>
</p:panel><br/>
<treap:btnCrudNovo bean="#{tipoMaterialJsfBean}" visivel="#{sec:ifAnyGranted('ADM')}"/>
<treap:btnCrudAtualizar id="btnAtualizar" bean="#{tipoMaterialJsfBean}"/>
<treap:btnRelatorio metodo="#{tipoMaterialJsfBean.geraRelatorioTipoMaterialPDF()}"/>
<p:dataTable id="tabela1" value="#{tipoMaterialJsfBean.tipoMaterialList}" var="item" emptyMessage="Nenhum registro encontrado." paginator="true" rows="25" pageLinks="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} Registros por página: {RowsPerPageDropdown}"
rowsPerPageTemplate="15,25,35,50">
<p:column headerText="Código" style="width:07%">
#{item.tipoCodigo}
</p:column>
<p:column headerText="Descrição">
#{item.tipoDescricao}
</p:column>
<p:column headerText="Ações" style="width:06%">
<treap:btnCrudEditar bean="#{tipoMaterialJsfBean}" visivel="#{sec:ifAnyGranted('ADM')}"/>
<treap:btnCrudExcluir bean="#{tipoMaterialJsfBean}" visivel="#{sec:ifAnyGranted('ADM')}"/>
</p:column>
</p:dataTable>
</p:tab>
<p:tab title="Cadastro/Alteração" id="tabForm" rendered="#{sec:ifNotGranted('USR')}">
<p:growl id="grow2" life="4000"/>
<fieldset><legend>Dados principais</legend>
<h:panelGrid columns="2">
<h:outputLabel id="tipoCodigo_lbl" value="Código:" for="tipoCodigo" />
<h:outputText id="tipoCodigo" value="#{tipoMaterialJsfBean.crudObj.tipoCodigo}" />
<p:outputLabel id="tipoDescricao_lbl" value="Descrição:" for="tipoDescricao" />
<p:inputText id="tipoDescricao" value="#{tipoMaterialJsfBean.crudObj.tipoDescricao}" required="true"
requiredMessage="O campo descrição deve ser informado." style="width: 170%" maxlength="50"/>
<h:outputLabel/>
</h:panelGrid>
</fieldset><br/>
<h:panelGrid columns="2">
<treap:btnCrudSalvar bean="#{tipoMaterialJsfBean}"/>
<treap:btnCrudCancelar bean="#{tipoMaterialJsfBean}"/>
</h:panelGrid>
</p:tab>
</p:tabView>
</ui:define>
</ui:composition>
</form>
</body>
</html>
Você está usando componentes próprios? (namespace treap)?
Poderia postar o código desses componentes também?
[quote=felipe_gdr]Você está usando componentes próprios? (namespace treap)?
Poderia postar o código desses componentes também?[/quote]
Posso sim.
Abaixo BOTAO EXCLUIR;
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:cc="http://java.sun.com/jsf/composite"
xmlns:p="http://primefaces.org/ui">
<!-- INTERFACE -->
<cc:interface>
<cc:attribute name="bean" required="true"/>
<cc:attribute name="process" default="@this"/>
<cc:attribute name="update" default="@form"/>
<cc:attribute name="visivel"/>
</cc:interface>
<!-- IMPLEMENTATION -->
<cc:implementation>
<p:commandLink title="Excluir" action="#{cc.attrs.bean.excluiObj(item)}" update="#{cc.attrs.update}"
process="#{cc.attrs.process}" oncomplete="tab1.selectTab(0);"
onclick="if (confirm('#{msg.confirm_del}')!=true) return false"
rendered="#{cc.attrs.visivel == null ? true : cc.attrs.visivel}">
<p:graphicImage value="/resources/img/icon/trash.gif" styleClass="icone_tabela"/>
</p:commandLink>
</cc:implementation>
</html>
então quando vc clica no excluir pela primeira vez o registro é apagado da tabela e da tela, mas quando vc faz a segunda vez o registro só é apagado da tabela?
aparece alguma mensagem no log/console?
[quote=felipe_gdr]então quando vc clica no excluir pela primeira vez o registro é apagado da tabela e da tela, mas quando vc faz a segunda vez o registro só é apagado da tabela?
aparece alguma mensagem no log/console?[/quote]
Não, quando clico pela PRIMEIRA VEZ ELE APAGA DA TABELA E BANCO de dados, mas quando CLICO NA SEGUNDA VEZ ele não apaga, por isso eu tenho que dar um F5…
Já ouviu na propriedade reRender?
Olá, trabalho junto com o Ricardo, com o reRender dá pra corrigir isso ?
se puder explicar melhor 
obrigado
Se o problema for mesmo em ter que dar F5, sim, o reRender irá funcionar isso. Tente pesquisar em como fazer um reRender pelo Bean. Depois disso, você deve ter um método que é acionado ao trocar a página. No final desse método coloque o reRender com o id do elemento que quer dar um “refresh”
Augusto, qual é a diferença entre o reRender e o update?
Ah meu jovem, me desculpa, agora que me liguei que estava usando o prime. Bom, o reRender é a mesma coisa que o update, só que ele é do rich. Provavelmente eles devem funcionar da mesma forma. Te aconselho a ler a documentação do prime, e se precisar de alguma ajuda estamos ai!
Entendi, também uso o Primefaces, por isso estranhei o reRender.
De qualquer maneira o caminho é esse.
Sim, na verdade é a mesma lógica, a única coisa que irá mudar é o nome do componente.
VOou testar aki. 