Dúvida em commitChanges() em JSP

0 respostas
J

Galera,

Já desenvolvi alguns projetos em JSP, porém todos eram apenas para listagem de dados (relatórios web), porém agora preciso fazer um cadastro (Inserir, Editar, Excluir) e estou com o seguinte problema:

Criei uma página contendo um JTable com 2 colunas de dados (codigo, nome) e uma terceira coluna com um botão de ‘Editar’, na mesma página possui ainda um campo (TextField) pra mostrar o nome do emissor (no caso quando abre a página mostra o primeiro registro da tabela), quando eu clico no botão editar de algum registro a página é atualizada e o nome do emissor é mostrado atualizado no TextField, o problema está em que ao alterar esse nome através do TextField ele não altera no banco de dados após eu clicar em um outro botão (Salvar).

O código do botão salvar está assim:

try {

            tableRowGroup1.setRowKey((RowKey) session.getValue("rk"));
            RowKey rk = tableRowGroup1.getRowKey();
            if (rk != null) {
                emissoresDataProvider.setCursorRow(rk);
                emissoresDataProvider.refresh();
                emissoresDataProvider.commitChanges();
            }
        } catch (Exception ex) {
            log("Descrição do erro", ex);
            error(ex.getMessage());
        }

O que eu notei é que, como o TextField está relacionado com o meu emissoresDataProvider (bind), após dar o comando emissoresDataProvider.refresh() ele acaba atualizando-o com o valor antigo do campo e acaba salvando esse valor antigo e não o que eu acabei de digitar…

E se caso eu não der o comando emissoresDataProvider.refresh() ele salva o valor que eu digitei no TextField porém grava no primeiro registro da tabela, mesmo que eu tenha selecionado o último…

alguém tem alguma dica pra resolver isso?

Desde já obrigado.

Criado 17 de dezembro de 2007
Respostas 0
Participantes 1