Re:Datatable primefaces não recarrega após validação dos campos

Troca a tag action do seu botão por actionListener

actionListener="#{ldoBean.salvarLDO}"

update = “formLDO:dataTableLDO mensLdo dtAnoLdo dtPublic numLei”

Tenta ai.

Poe seu dataTable dentro de um <h:panelGrid> e atualize o panelGrid.

Após validação do meu formulário presente em um dialogo, o datatable não é recarregado com as informações.

Aguém pode ajudar ? Agradeço

<h:form id="formLDO">

		<p:dialog widgetVar="dialogLDO" showEffect="explode" showHeader="false" hideEffect="bounce" height="400" width="900" modal="true" resizable="false">  
		    	   <p:messages id="mensLdo"/>
		    	   <p:panel header="Formulário de Cadastro">
		    	   			<h:inputHidden value="#{ldoBean.ppa.idPpa}" />
					    	<h:inputHidden value="#{ldoBean.ppa.unidadeGestora.idUnidadeGestora}" />
		    			    <center>
					    		<p:panelGrid columns="2">
										<h:outputLabel value="Plano Plurianual :" /> <h:outputLabel value="#{ldoBean.ppa.dtAnoInicialPpa} / #{ldoBean.ppa.dtAnoFinalPpa}" />
										<h:outputLabel value="Número da Lei : " for="numLei" />
										<p:inputText id="numLei" value="#{ldoBean.ldo.numLei}" required="true" requiredMessage="Informe o número da lei." />
										<h:outputLabel value="Data de Publicação : " for="dtPublic" />
										<p:calendar value="#{ldoBean.ldo.dtPublicacao}" locale="pt_BR" id="dtPublic" required="true" requiredMessage="Informe a data de publicação." />
										<h:outputLabel value="Ano da Ldo : " for="dtAnoLdo" />
										<p:inputText value="#{ldoBean.ldo.dtAnoLdo}" id="dtAnoLdo" required="true" requiredMessage="Informe o ano da Ldo." />
										<p:commandButton update="dataTableLDO,mensLdo,dtAnoLdo,dtPublic,numLei" action="#{ldoBean.salvarLDO}" icon="icon-check" value="Cadastrar" />
										<p:commandButton id="rejeita" value="Fechar" icon="icon-cancel" onclick="dialogLDO.hide()" type="button" />
								</p:panelGrid>
							</center>
		
							<br />
		
							<center>
							 
							 <p:dataTable id="dataTableLDO" var="item" 
										value="#{ldoBean.listaLdo}" paginator="false" rows="15"
										 emptyMessage="Não há LDO cadastrada" 
										paginatorPosition="bottom" style="width:50%; text-align:center;"
										paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}">
										<f:facet name="header">
											<h:outputText value="LISTA DE LDO(S)" style="font-size: 13px; color: #FFFFFF;"/>
										</f:facet>
										<p:column style="text-align:center;">
											<f:facet name="header">
												<h:outputText value="NUM. LEI" />
											</f:facet>
											<h:outputText value="#{item.numLei}" />
										</p:column>
										<p:column style="text-align:center;">
											<f:facet name="header">
												<h:outputText value="ANO" />
											</f:facet>
											<h:outputText value="#{item.dtAnoLdo}" />
										</p:column>
										<p:column style="text-align:center;">
											<f:facet name="header">
												<h:outputText value="DATA DE PUBLICAÇÃO" />
											</f:facet>
											<h:outputText value="#{item.dtPublicacao}">
													<f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo" />
											</h:outputText>		
										</p:column>
									</p:dataTable>
							
							</center>
							
							<br />
					  
					</p:panel>
					
				</p:dialog> 
		
		  </h:form>

Segue a minha datatable descarregada após a validação mesmo tendo mudado para actionlistner.

Continuou da mesma forma. Quando eu tiro o “dataTableLDO” de dentro da tag do UPDATE a datatable não perde os elementos da lista após a validação. Só que tem um pequeno problema, quando eu realizo o cadastro com sucesso a datatable não atualiza pois ela precisa estar dentro da tag UPDATE.

Mesmo colocando dentro do <h:panelGrid> o erro continua.