Ajuda com visualização de dados

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.