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