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.