Não atualiza a lista

Bom dia senhores.

Tenho uma tela com uma lista de objetos, quando eu clico no botao excluir, o objeto é excluido da base de dados, mas na tela a listagem não é atualizada. Alguém sabe o que estou fazendo de errado?

Segui os códigos abaixo:

listaEleitor.xhtml

<ui:composition 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" template="/pageUtils/template.xhtml">

	<ui:define name="body">
		<h:form>
			<div align="left">
				<p:growl id="Mensagem" showDetail="true" life="3000" />
				<h:panelGrid columns="9" id="painel">

					<h:outputText value="Nome :" />
					<p:inputText id="nome" value="#{eleitorController.eleitor.nome}"
						maxlength="60" title="informe o nome do eleitor" />
					<p:tooltip for="nome" showEvent="focus" hideEvent="blur" />

					<h:outputText value="Rua :" />
					<p:inputText id="rua" value="#{eleitorController.eleitor.rua}"
						maxlength="30" title="informe a rua" />
					<p:tooltip for="rua" showEvent="focus" hideEvent="blur" />

					<h:outputText value="Numero :" />
					<p:inputText id="numero"
						value="#{eleitorController.eleitor.numero}" maxlength="6"
						title="informe o numero da rua" />
					<p:tooltip for="numero" showEvent="focus" hideEvent="blur" />

					<h:outputText value="Cep :" />
					<p:inputText id="cep" value="#{eleitorController.eleitor.cep}"
						maxlength="8" title="informe o numero do cep" />
					<p:tooltip for="cep" showEvent="focus" hideEvent="blur" />

					<h:outputText value="Complemento :" />
					<p:inputText id="complemento"
						value="#{eleitorController.eleitor.complemento}" maxlength="30"
						title="informe o complemento" />
					<p:tooltip for="complemento" showEvent="focus" hideEvent="blur" />

					<h:outputText value="
						Bairro :" />
					<p:inputText id="bairro"
						value="#{eleitorController.eleitor.bairro}" maxlength="30"
						title="informe o bairro" />
					<p:tooltip for="bairro" showEvent="focus" hideEvent="blur" />

					<h:outputText value="Celular :" />
					<p:inputMask id="celular"
						value="#{eleitorController.eleitor.celular}" maxlength="10"
						mask="(99) 9999-9999" title="informe o numero do celular" />
					<p:tooltip for="celular" showEvent="focus" hideEvent="blur" />

					<h:outputText value="Residencial :" />
					<p:inputMask id="residencial"
						value="#{eleitorController.eleitor.residencial}" maxlength="10"
						mask="(99) 9999-9999" title="informe o numero do fone residencial" />
					<p:tooltip for="residencial" showEvent="focus" hideEvent="blur" />

					<h:outputText value="Comercial :" />
					<p:inputMask id="comercial"
						value="#{eleitorController.eleitor.comercial}" maxlength="10"
						mask="(99) 9999-9999" title="informe o numero do fone comercial" />
					<p:tooltip for="comercial" showEvent="focus" hideEvent="blur" />
					<!-- -->
				</h:panelGrid>
				<p:commandButton value="Salvar"
					action="#{eleitorController.salvar()}" update="painelLista" />

				<p:commandButton value="Reset" type="reset" />
				<p:commandButton value="Submit" update="display"
					oncomplete="dialog.show()" />

				<h:panelGrid id="painelLista" columns="1">
					<p:dataTable var="listEleitores"
						value="#{eleitorController.eleitores}" paginator="true" rows="5"
						style="width:800px;">
						<p:column>
							<f:facet name="header">
								<h:outputText value="Nome" width="40%" />
							</f:facet>
							<h:outputText value="#{listEleitores.nome}" />
						</p:column>

						<p:column>
							<f:facet name="header" width="30%">
								<h:outputText value="Rua" />
							</f:facet>
							<h:outputText value="#{listEleitores.rua}" />
						</p:column>

						<p:column>
							<f:facet name="header" width="30%">
								<h:outputText value="Celular" />
							</f:facet>
							<h:outputText value="#{listEleitores.celular}" />
						</p:column>

						<p:column width="15%">
							<p:commandButton title="Editar" update="painel"
								action="#{eleitorController.editar}" ajax="false"
								image="ui-icon ui-icon-wrench">
								<f:setPropertyActionListener
									target="#{eleitorController.selected}" value="#{listEleitores}" />
							</p:commandButton>
						</p:column>

						<p:column>
							<p:commandButton title="Deletar" update="painelLista"
								action="#{eleitorController.deletar}"
								image="ui-icon ui-icon-trash">
								<f:setPropertyActionListener
									target="#{eleitorController.selected}" value="#{listEleitores}" />
							</p:commandButton>
						</p:column>

					</p:dataTable>
				</h:panelGrid>
			</div>
		</h:form>
	</ui:define>
</ui:composition>
package br.com.ss.portal.controller.eleitor;

import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import br.com.ss.portal.component.Util;
import br.com.ss.portal.exceptions.EleitorValidator;
import br.com.ss.portal.exceptions.ValidationException;
import br.com.ss.portal.model.entity.Eleitor;

@Controller
@Scope("session")
public class EleitorController {

	private Eleitor eleitor;
	private List<Eleitor> eleitores;
	private Eleitor selected;

	@Autowired
	private IEleitorService services;

	public EleitorController() {
		Iniciar();
	}

	public void salvar() {
		try {
			EleitorValidator.validarCampos(this.eleitor);

			this.eleitor.setCelular(Util.removeMask(eleitor.getCelular()));
			this.eleitor.setResidencial(Util.removeMask(eleitor
					.getResidencial()));
			this.eleitor.setComercial(Util.removeMask(eleitor.getComercial()));

			this.eleitor = this.eleitor.removeMask(eleitor);
			services.salvar(this.eleitor);
			Iniciar();

			FacesContext.getCurrentInstance().addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_INFO, "Aviso",
							"Dados salvos com sucesso !"));

		} catch (ValidationException e) {
			e.getMessage();
			FacesContext.getCurrentInstance().addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_WARN, "Warnning", e
							.getMessage()));
		} catch (Exception e) {
			System.out.println(" e.getMessage() == " + e.getMessage());
			FacesContext.getCurrentInstance().addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro", e
							.getMessage()));
		}
	}

	public void deletar() {
		
		System.out.println("###### size antes "+this.eleitores.size());
		services.deletar(this.selected);

		getEleitores();
		System.out.println("###### size depois  "+this.eleitores.size());
		Iniciar();
	}

	public void editar() {
		System.out.println("entrou no medoto editar");
		this.eleitor = this.selected;
	}

	public void cancelar() {
		Iniciar();
	}

	private void Iniciar() {
		this.eleitor = new Eleitor();
	}

	public Eleitor getEleitor() {
		return eleitor;
	}

	public void setEleitor(Eleitor eleitor) {
		this.eleitor = eleitor;
	}

	public void setEleitores(List<Eleitor> eleitores) {
		this.eleitores = eleitores;
	}

	public List<Eleitor> getEleitores() {
		this.eleitores = services.Buscartodos();
		return this.eleitores;
	}

	public void setSelected(Eleitor selected) {
		this.selected = selected;
	}

	public Eleitor getSelected() {
		return selected;
	}

}

Valeww

No seu commandbutton acrescente um update da sua dataTable.

O seu service está removendo da lista eleitores ?

Bom dia

Após a exclusao do objeto, eu atualizao a lista do meu ManageBean, no entanto na view da aplicação continua aparecendo o objeto excluido, acho que falta dar um refresh no na table, so não sei como.

coloqueio o update tableLista e no painelLista, mas não funcionou

<h:panelGrid id="painelLista" columns="1">
					<p:dataTable var="listEleitores" id="tableLista"
						value="#{eleitorController.eleitores}" paginator="true" rows="5"
						style="width:800px;">
						<p:column>
							<f:facet name="header">
								<h:outputText value="Nome" width="40%" />
							</f:facet>
							<h:outputText value="#{listEleitores.nome}" />
						</p:column>

						<p:column>
							<f:facet name="header" width="30%">
								<h:outputText value="Rua" />
							</f:facet>
							<h:outputText value="#{listEleitores.rua}" />
						</p:column>

						<p:column>
							<f:facet name="header" width="30%">
								<h:outputText value="Celular" />
							</f:facet>
							<h:outputText value="#{listEleitores.celular}" />
						</p:column>

						<p:column width="15%">
							<p:commandButton title="Editar" update="painel"
								action="#{eleitorController.editar}" ajax="false"
								image="ui-icon ui-icon-wrench">
								<f:setPropertyActionListener
									target="#{eleitorController.selected}" value="#{listEleitores}" />
							</p:commandButton>
						</p:column>

						<p:column>
							<p:commandButton title="Deletar" update="tableLista"
								action="#{eleitorController.deletar}"
								image="ui-icon ui-icon-trash">
								<f:setPropertyActionListener
									target="#{eleitorController.selected}" value="#{listEleitores}" />
							</p:commandButton>
						</p:column>

					</p:dataTable>
				</h:panelGrid>

Alguma outra sugestao?

Bom dia Senhores.

Coloqueio no commandButton update=“tableLista” ajax=“false” e funcionou, segui o codigo abaixo:

<p:column>
							<p:commandButton title="Deletar" update="tableLista" ajax="false"
								action="#{eleitorController.deletar}"
								image="ui-icon ui-icon-trash">
								<f:setPropertyActionListener
									target="#{eleitorController.selected}" value="#{listEleitores}" />
							</p:commandButton>
						</p:column>

Muito obrigado…