É o seguinte: eu tenho uma tela de detalhes de tratamentos. Cada tratamento tem uma ou mais consultas associadas. Logo eu mostro as informações do tratamento e abaixo uma lista com as consultas.
O meu problema taí!!!
A forma mais lógica para eu conseguir as consultas foi assim:
A minha intenção é que quando o usuário clicar em Excluir o método excluir() de consultaBean seja chamado e o atributo consulta seja setado para o valor atual da linha do dataTable, ok!
Mas isso não acontece!!!
Já debuguei esse negócio 1000 vezes e eu descobri uma possível causa: a propriedade tratamento de tratamentoBean (de onde vem a minha lista de consultas) só é setada no fase UPDATE MODEL VALUES, mas parece que o método getConsultas() é chamado vários vezes durante a fase APPLY REQUEST VALUES.
Logo, pelo que entendi, não é passado para consultaBean a instância de Consulta que deveria ser passada porque ele não tem a propriedade tratamento de tratamentoBean em mãos para buscar as consultas, o só vai ocorrer em UPDATE MODEL VALUES!
O que vocês acham?
To há 5 horas mexendo nisso e não consigo resolver! Por favor, alguém ajuda!
Amigo vc esta querendo excluir uma consulta de uma List ao que me parece, porém vc nao remove a consulta da lista quando o excluir é chamado tente do jeito abaixo
Já tentei assim também, mas o excluir() não é nem chamado.
Para tentar avaliar onde poderia estar o problema eu criei em tratamentoBean um método chamado listarConsultasDoTratamento34() que retorna as consultas para esse tratamento.
Aí funcionou perfeitamente, tanto da maneira como você disse agora quanto da maneira como eu fiz no exemplo anterior.
O problema aqui é a dependência que existe da propriedade tratamento do managed bean TratamentoBean.
Eu percebi que tratamentoBean.tratamento.consultas é chamado várias vezes mas não entendo o porque o método excluir() se quer é chamado.
nós setamos o valor do action listener naquela posição em que está o CommandButton para o nosso atributo no ManagedBean
a partir daí podemos usar ele pra um confirmdialog ou um dialog usando esse atributo que criamos antes no MB
mesmo usando isso eu também estou com erro porem to passando o meu entendimento tentando aqui achar uma solução