Bem estou criando um sistema, em Hibernate + JSF (Richfaces, Facelets)…
E to Com 1 Puta Problema, tipo tenho alguns campos referentes a um ‘Dependente’ e adiciono eles em uma lista que logo abaixo tem uma tabela que mostra esses Dependentes…
Para Adicionar e Excluir Tranquilo. Meu Problema eh Com Update… Eu Tenho 1 Botão na Tabela que eu faço um setPropertyListener desse Objeto e Jogo pra Tela de Novo…
a Maioria dos Dados Vem Corretos, mas tem 1 Campo Grau de Parentesco que eh 1 lista puxada do banco, e está em um Combo…
E Diversas vezes ele ao inves de me trazer o q Grau de Parentesco q a Tabela Mostrava desse Objeto, ele me traz a primeira Opção que a lista fornece…
Na Foto eu Clico no Botão Alterar ele Envia o Objeto pra Tela… Mas como pode Ver o Grau De Parentesco Vem Errado…
Eu Gostaria de Saber como posso ter segurança nessa troca de Objetos pq essa parte eh muito importante q nao pode acontecer uma coisa dessas…
Se Alguem Puder me Ajudar Eu Agradeço D+++
Vlw.
ola deixa eu fazer uma pergunta para vc, quando vc vai alterar ele tem o id grau de parentesco em uma tabela certo, porque quando vc salva vc grava ele em uma tabela neh ,então quando vc da o update vc ta pegando esse id salvo e ta fazendo o select com esse id no where amigo ?
Tipo eu Tenho Meu Objeto… Dependente e ele tem um Atributo GrauParentesco…
Ah Ideia Seria neh q qdo ele Pegasse esse Objeto q está na Tabela ele já apontasse em qual ele se enquadra no combobox… pq lá ta associado no value dependente.grauparentesco…
Vo Postar Os Codigos…
A Página.
<a4j:outputPanel id="panelDependentes">
<h:inputText value="#{mbOrcamento.dependente.nome}" binding="#{mbOrcamento.nomeDep}" id="nomeDep" style="margin-left:61px;margin-bottom:2px; width : 385px;"/>
<h:inputText id="dataN" value="#{mbOrcamento.dependente.dt_Nascimento}" style="margin-left:25px;margin-bottom:2px;width:100px"
valueChangeListener="#{mbOrcamento.calcularIdade}" converterMessage="Insira uma Data Válida para o Campo 'Data de Nascimento' dos Dependentes" binding="#{mbOrcamento.dtNascDep}">
<f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo" locale="pt_BR"/>
<r:jQuery selector="#dataN" query="mask('99/99/9999')" timing="onload" />
<a4j:support id="eventDtNasc" event="onblur" reRender="age" />
</h:inputText>
<h:inputText id="age" value="#{mbOrcamento.dependente.idade}" binding="#{mbOrcamento.idade}" readonly="true"
style="margin-left:25px;margin-bottom:2px;width:50px" />
<h:selectOneMenu id="grauParent" value="#{mbOrcamento.dependente.grauParentesco}" style="margin-left:31px;margin-bottom:2px;width:150px" >
<f:selectItems value="#{mbOrcamento.listaGrauParentesco}" id="myItens"/>
<f:converter converterId="ConverterGrauParentesco" />
</h:selectOneMenu>
</a4j:outputPanel>
Metodos Do Bean
public void adicionaDependente() throws ParseException{
if(dependente.getGrauParentesco() == null){
System.out.println("Grau Nulo");
return;
}
if(salvarDep){
listaDependentes.add(dependente);
valorCalculado = false;
}
salvarDep = true;
dependente = new Dependente();
}
public void excluirDependente(){
listaDependentes.remove(dependente);
dependente = new Dependente();
clearDependente();
salvarDep = true;
}
Tabela
<r:dataTable id="tableOrcamento" value="#{mbOrcamento.listaDependentes}" var="item" rows="3" style="margin-left:61px; margin-top: 12px; width:843px">
<r:column style="width: 50px">
<f:facet name="header">
<h:outputText value="Alterar" />
</f:facet>
<a4j:commandLink reRender="panelDependentes">
<h:graphicImage value="/images/edit.gif" style="border:0px; margin-left:18px"/>
<f:setPropertyActionListener value="#{item}" target="#{mbOrcamento.dependente}" />
<f:setPropertyActionListener value="false" target="#{mbOrcamento.salvarDep}" />
</a4j:commandLink>
</r:column>
<r:column style="width: 50px">
<f:facet name="header">
<h:outputText value="Excluir" />
</f:facet>
<a4j:commandLink action="#{mbOrcamento.excluirDependente}" reRender="tableOrcamento,panelDependentes,nomeDep">
<h:graphicImage value="/images/delete2.gif" style="border:0px;margin-left:18px; margin-top:3px"/>
<f:setPropertyActionListener value="#{item}" target="#{mbOrcamento.dependente}" />
</a4j:commandLink>
</r:column>
<f:facet name="footer">
<r:datascroller />
</f:facet>
</r:dataTable>