Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dados alterados no datatable não carregam objeto livro no bean gerenciado

Prezado instrutor,

Implementei a funcionalidade de alteração conforme vídeo, carregando o item editado no objeto existente no Bean, passando-o como parâmtero no método que faz o carregamento. Sem sucesso! Fazendo o debug, observo que o objeto livro que vem do formulário já editado possui os atributos antigos e não os que eu editei nos inputText do formulário.

Tentei uma outra abordagem para solução. Coloquei um outro elemento dentro da tag do botão que realiza a ação de edição. Este novo elemento é o , colocando como target o objeto livro do Bean e passando como valor a variável do dataTable.

O código ficou assim:

 <h:commandButton value="SALVAR LIVRO EDITADO" 
                             action="#{livroBean.salvarLivroEditado()}">

 <f:setPropertyActionListener target="#{livroBean.livro}"  value="#{livro}"/>

            </h:commandButton>

No método para salvar o livro editado do Bean eu passo o objeto livro, que eu esperava já estar alterado, para o método DAO que faz a edição, porém ele vem da tabela com os valores antigos e não com os novos.

A outra abordagem apresentada no vídeo, passando a variável livro do dataTable para um método no Bean que carrega o item no objeto livro, também não funcionou. O objeto que chega no método vem com os dados antigos e não com os dados editados no inputText.

Att,

Emmanuel D'Abruzzo

2 respostas
solução!

Oi Emmanuel, tudo bem?

Sempre que vamos mexer com JSF, o objeto que está na classe Bean e o objeto que esta representado no formulário tem o mesmo valor, desde que os binds estejam feitos corretamente.

Você poderia passar o seu xhtml e o seu ManagedBean?

obrigado!

Prezado Samir,

Consegui resolver setando para false o atributo ajax do p:commandButton que salva o objeto editado.

Grande abraço e obrigado!