Galera, estou fazendo um crud com primefaces e estou com o seguinte problema:
ao tentar dar um update em um registro, apesar de fazer as alterações necessárias no formulário, ao clicar no botão salvar, o sistema insiste em pegar os dados anteriores a alteração do formulário. Já tentei de tudo, alguem pode me dar alguma luz?
segue abaixo os códigos:
BackingBean
package br.com.saturno.hyperium.service.impl.ctrc;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Service;
import br.com.saturno.hyperium.bd.DAOCidade;
import br.com.saturno.hyperium.bd.DAOEstado;
import br.com.saturno.hyperium.bd.DAOFonteReceita;
import br.com.saturno.hyperium.bd.DAOPortador;
import br.com.saturno.hyperium.bd.ctrc.DAOFilial;
import br.com.saturno.hyperium.bean.Cidade;
import br.com.saturno.hyperium.bean.Estado;
import br.com.saturno.hyperium.bean.FonteReceita;
import br.com.saturno.hyperium.bean.Portador;
import br.com.saturno.hyperium.bean.ctrc.Filial;
import br.com.saturno.hyperium.service.ctrc.FilialService;
import br.com.saturno.hyperium.view.ctrc.FilialView;
@Service("filialService")
public class FilialServiceImpl implements FilialService{
@Override
public void cadastrarFilial(FilialView view) {
try {
new DAOFilial().inserirFilial(view.getFilial());
}catch(Exception ex) {
ex.printStackTrace();
}
}
@Override
public void excluirFilial(FilialView view) {
try {
new DAOFilial().excluirFilial(view.getFilial());
}catch(Exception ex) {
ex.printStackTrace();
}
}
@Override
public void alterarFilial(FilialView view) {
try {
new DAOFilial().alterarFilial(view.getFilial());
}catch(Exception ex) {
ex.printStackTrace();
}
}
@Override
public List<Filial> getFiliais() {
List<Filial> dados = new ArrayList<Filial>();
try{
dados = new DAOFilial().getFiliais();
}catch(Exception ex) {
}
return dados;
}
@Override
public List<Cidade> getCidades() {
try {
return new DAOCidade().getCidades();
}catch(Exception ex) {
return new ArrayList<Cidade>();
}
}
@Override
public List<Estado> getEstados() {
try {
return new DAOEstado().getEstados();
}catch(Exception ex) {
ex.printStackTrace();
return new ArrayList<Estado>();
}
}
public Map<String,String> getEstadoCombo() {
Map<String,String> estados = new HashMap();
List<Estado> listEstados = this.getEstados();
for(int i=0;i<listEstados.size();i++) {
estados.put(listEstados.get(i).getDescricao(),listEstados.get(i).getCodigo().toString());
}
return estados;
}
public Map<String,String> getCidadeCombo() {
Map<String,String> cidades = new HashMap();
List<Cidade> listCidades = this.getCidades();
for(int i=0;i<listCidades.size();i++) {
cidades.put(listCidades.get(i).getDescricao(),listCidades.get(i).getCodigo().toString());
}
return cidades;
}
@Override
public Map<String, String> getFonteReceitaCombo() {
Map<String,String> fontes = new HashMap();
List<FonteReceita> listFontes = this.getFonteReceita();
for(int i=0;i<listFontes.size();i++) {
fontes.put(listFontes.get(i).getDescricao(),listFontes.get(i).getCodigo().toString());
}
return fontes;
}
@Override
public List<FonteReceita> getFonteReceita() {
try {
return new DAOFonteReceita().getFonteReceitas();
}catch(Exception ex) {
ex.printStackTrace();
return new ArrayList<FonteReceita>();
}
}
@Override
public List<Portador> getPortadores() {
try {
return new DAOPortador().getPortadores();
}catch(Exception ex) {
ex.printStackTrace();
return new ArrayList<Portador>();
}
}
@Override
public Map<String, String> getPortadoresCombo() {
Map<String,String> fontes = new HashMap();
List<Portador> listPortadores = this.getPortadores();
for(int i=0;i<listPortadores.size();i++) {
fontes.put(listPortadores.get(i).getDescricao(),listPortadores.get(i).getCodigo().toString());
}
return fontes;
}
}
Tela principal:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:sec="http://www.springframework.org/security/tags">
<ui:composition template="/pages/template/template_padrao.xhtml">
<ui:define name="head">
<style type="text/css">
.ui-datatable .ui-datatable-header {
text-align: right;
}
.ui-button-icon-only .ui-icon {
left: 50%;
margin-left: -8px;
}
.ui-datatable table {
border-collapse: collapse;
width: 100%;
font-size: 80% !important;
}
</style>
</ui:define>
<ui:define name="cabecalho">
<ui:include src="/pages/admin/ctrc/cabecalho.xhtml"></ui:include>
</ui:define>
<ui:define name="conteudo">
<h:form id="form">
<p:messages id="msgs" showDetail="true"/>
<p:dataTable var="filial" value="#{filialView.filiais}" id="listagem"
selection="#{filialView.filial}" selectionMode="single" onselectComplete="filialDialog.show()" update="form:display"
paginator="true" rows="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15">
<p:column filterBy="#{filial.codigo}" headerText="Código"
style="width: 10%;" filterMatchMode="contains">
<center>
<font face="verdana" size="2"> <h:outputText
value="#{filial.codigo}" /> </font>
</center>
</p:column>
<p:column filterBy="#{filial.descricao}" style="width: 60%;"
headerText="Descrição" filterMatchMode="contains">
<font face="verdana" size="2"> <h:outputText
value="#{filial.descricao}" /> </font>
</p:column>
<p:column filterBy="#{filial.prazo}" headerText="Prazo"
style="width: 10%;" filterMatchMode="contains">
<center>
<font face="verdana" size="2"> <h:outputText
value="#{filial.prazo}" /> </font>
</center>
</p:column>
<f:facet name="footer">
<p align="left">
<p:commandButton value="Novo" image="ui-icon ui-icon-disk"
oncomplete="filialCad.show()" />
</p>
</f:facet>
</p:dataTable>
<p:dialog header="Manutenção Cadastral de Filiais"
widgetVar="filialDialog" resizable="false" width="350"
showEffect="clip" hideEffect="fold" modal="true">
<h:panelGrid id="display" columns="1" cellpadding="4">
<h:outputLabel for="descricao" value="Descrição*" />
<p:inputText id="descricao" value="#{filialView.filial.descricao}"
required="true" />
<h:outputLabel for="codtranspor" value="Cod. TRANSPOR*" />
<p:inputText id="codtranspor"
value="#{filialView.filial.codTranspor}" />
<h:outputLabel for="prazo" value="Prazo" />
<p:inputText id="prazo" value="#{filialView.filial.prazo}" />
<h:outputLabel for="estado" value="Estado" />
<h:selectOneMenu id="estado" value="#{filialView.estado.codigo}">
<f:selectItem itemLabel="Selecione..." itemValue="" />
<f:selectItems value="#{filialView.estados}" var="estado"
itemLabel="#{estado.descricao}" itemValue="#{estado.codigo}" />
</h:selectOneMenu>
<p:message for="estado" />
<h:outputLabel for="cidade" value="Cidade" />
<h:selectOneMenu id="cidade" value="#{filialView.cidade.codigo}">
<f:selectItem itemLabel="Selecione..." itemValue="" />
<f:selectItems value="#{filialView.cidades}" var="cidade"
itemLabel="#{cidade.descricao}" itemValue="#{cidade.codigo}" />
</h:selectOneMenu>
<p:message for="cidade" />
<h:outputLabel for="portador" value="Portador" />
<h:selectOneMenu id="portador"
value="#{filialView.portador.codigo}">
<f:selectItem itemLabel="Selecione..." itemValue="" />
<f:selectItems value="#{filialView.portadores}" var="portador"
itemLabel="#{portador.descricao}" itemValue="#{portador.codigo}" />
</h:selectOneMenu>
<p:message for="portador" />
<h:outputLabel for="fonte_receita" value="Fonte de Receita" />
<h:selectOneMenu id="fonte_receita"
value="#{filialView.fonteReceita.codigo}">
<f:selectItem itemLabel="Selecione..." itemValue="" />
<f:selectItems value="#{filialView.fontes}" var="fonte"
itemLabel="#{fonte.descricao}" itemValue="#{fonte.codigo}" />
</h:selectOneMenu>
<p:message for="fonte_receita" />
</h:panelGrid>
<p:commandButton value="Alterar" update="display form listagem msgs"
actionListener="#{filialView.alterarFilial}" immediate="true"
oncomplete="filialDialog.hide();"
title="Clique para salvar as informações" >
<f:setPropertyActionListener value="#{filial}" target="#{filialView.filial}" />
</p:commandButton>
<p:commandButton value="Excluir"
oncomplete="remover.show();"
title="Clique para excluir as informações" />
<p:commandButton value="Cancelar" immediate="true" onclick="filialDialog.hide()" />
</p:dialog>
</h:form>
<p:dialog header="Manutenção Cadastral de Filiais"
widgetVar="filialCad" resizable="false" width="350" showEffect="clip"
hideEffect="fold" modal="true">
<h:form id="formcad">
<h:panelGrid id="displaycad" columns="1" cellpadding="4">
<h:outputLabel for="descricaocad" value="Descrição*" />
<p:inputText id="descricaocad"
value="#{filialView.filial.descricao}" required="true" />
<h:outputLabel for="codtransporcad" value="Cod. TRANSPOR*" />
<p:inputText id="codtransporcad"
value="#{filialView.filial.codTranspor}" />
<h:outputLabel for="prazocad" value="Prazo" />
<p:inputText id="prazocad" value="#{filialView.filial.prazo}" />
<h:outputLabel for="estadocad" value="Estado" />
<h:selectOneMenu id="estadocad" value="#{filialView.estado.codigo}">
<f:selectItem itemLabel="Selecione..." itemValue="0" />
<f:selectItems value="#{filialView.estados}" var="estado"
itemLabel="#{estado.descricao}" itemValue="#{estado.codigo}" />
</h:selectOneMenu>
<p:message for="estadocad" />
<h:outputLabel for="cidadecad" value="Cidade" />
<h:selectOneMenu id="cidadecad" value="#{filialView.cidade.codigo}">
<f:selectItem itemLabel="Selecione..." itemValue="0" />
<f:selectItems value="#{filialView.cidades}" var="cidade"
itemLabel="#{cidade.descricao}" itemValue="#{cidade.codigo}" />
</h:selectOneMenu>
<p:message for="cidadecad" />
<h:outputLabel for="portadorcad" value="Portador" />
<h:selectOneMenu id="portadorcad"
value="#{filialView.portador.codigo}">
<f:selectItem itemLabel="Selecione..." itemValue="0" />
<f:selectItems value="#{filialView.portadores}" var="portador"
itemLabel="#{portador.descricao}" itemValue="#{portador.codigo}" />
</h:selectOneMenu>
<p:message for="portadorcad" />
<h:outputLabel for="fonte_receitacad" value="Fonte de Receita" />
<h:selectOneMenu id="fonte_receitacad"
value="#{filialView.fonteReceita.codigo}">
<f:selectItem itemLabel="Selecione..." itemValue="0" />
<f:selectItems value="#{filialView.fontes}" var="fonte"
itemLabel="#{fonte.descricao}" itemValue="#{fonte.codigo}" />
</h:selectOneMenu>
<p:message for="fonte_receitacad" />
</h:panelGrid>
<p:commandButton value="Salvar" id="btn_cad"
action="#{filialView.cadastrarFilial}" update="form listagem msgs"
oncomplete="filialCad.hide();"
title="Clique para salvar as informações" />
<p:commandButton value="Limpar" action="#{filialView.limpar}" update="displaycad"/>
</h:form>
</p:dialog>
<p:dialog widgetVar="remover" header="Remover Filial" width="400" modal="true">
<h:form id="formRemover">
<h:outputText value="Confirma ?" />
<h:panelGrid columns="2">
<p:commandButton value="Sim" action="#{filialView.excluirFilial}" update="form listagem msgs" oncomplete="filialDialog.hide() remover.hide()" />
<p:commandButton value="Não" onclick="remover.hide()" />
</h:panelGrid>
</h:form>
</p:dialog>
</ui:define>
</ui:composition>
</html>
Alguma luz?