Bom dia pessoal, estou com a seguinte dificuldade:
Em meu sistema web, eu consigo cadastrar, listar, excluir e editar, até aí tudo bem.
Porém hoje, pensei em disponibilizar um botão para visualizar determinado dado de minha lista.
Está funcionando, porém não corretamente e isso está me fazendo perder um tempão.
Percebi que ao clicar em “editar”, os dados são retornados conforme o “id” .
Porém quando clico em “visualizar” ele retorna só o ultimo dado do banco.
O mais engraçado é que se uso um “form” no jsp , os dados são retornados corretamente… mas não quero um form… quero apenas uma tabela com os dados… pois bem, criei a tabela, customizei ela… mas o dado que aparece é sempre o último do banco.
Vou postar o jsp e o controller para melhor entendimento.
Dessa maneira, o campo: ${usuarioOp.cpf} não atualiza, clico no usuário X, Y e Z, a informação é sempre a mesma.
<fieldset id="fieldsetUsuOp"><legend>Favorecido</legend>
<table class="box">
<tr><td><input type="text" name="usuarioOp.cod" id="usuarioOpCod" class="id" value="${usuarioOp.cod}"></td>
<tr>
<td><label>CPF:</label></td>
<td class="TextoTabela"><span>${usuarioOp.cpf}</span></td>
</tr>
</table>
</fieldset>
Agora se faço um form como abaixo, funciona, porém perco a formatação desejada.
<fieldset id="fieldsetUsuOp"><legend>Favorecido</legend>
<form>
<table class="box">
<tr><td><input type="text" name="usuarioOp.cod" id="usuarioOpCod" class="id" value="${usuarioOp.cod}"></td>
<tr>
<td><label>CPF:</label></td>
<td class="TextoTabela"><span><input type="text" name="usuarioOp.cpf" id="usuarioOpCPF" class="id" value="${usuarioOp.cpf}"></span></td>
</tr>
</table>
</form>
</fieldset>
Para realizar a busca, faço assim:
function buscaUsuarioOp(cod) {
var msg = "";
var url = '<c:url value="/usuarioOp/buscaUsuarioOp?cod="/>';
$.getJSON(url + cod,
function (ajax) {
$.each(ajax.usuarioOp, function (k, value) {
$("#fieldsetUsuOp").find($('[name="usuarioOp.' + k + '"]')).each(function () {
setElementValue(this, value, 'usuarioOp.' + k);
});
});
});
}
function visualizaDados(cod) {
$('#dialogVisual').dialog('option', 'title', 'Visualizar Dados');
$('#dialogVisual').dialog('open');
buscaUsuarioOp(cod);
}
E por fim, meu método no controller:
public void buscaUsuarioOp(Long cod) {
UsuarioOp usuarioOp = daoFactory.getUsuarioOpDao().carrega(cod);
result.use(Results.json())
.from(usuarioOp)
.serialize();
}
Onde posso estar errando? O que me deixa intrigado é que se uso o formulário, funciona, se uso apenas tabela, só mostra o último registro, independente do dado desejado.