Vou deixar registrado a solução para o problema…
1o) Modifiquei o autocomplete para o que está neste link: http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/
:arrow: É a versão antiga do plugin… mas é a que funcionou
Nele existe dois “demo”. Um é sobre json.
Em resumo:
-
atualizar (copias para a pasta de scripts da sua aplicação) o script jquery.autocomplete.js
-
Idem para o jquery.js (para usar a mesma versão suportada pelo plugin)
-
atalizar o cabeçalho da pagina header.jspf
-
adicionar o seguinte código no formulário… o gancho está na parte final:
$("#busca").autocomplete('<c:url value="/produtos/busca.json"/>', {
dataType: "json", // pra falar que vamos tratar um json
// a função map vai iterar por toda a lista,
// e transformar os dados usando a função passada
parse: function(json) { // para tratar o json
// a função map vai iterar por toda a lista,
// e transformar os dados usando a função passada
return $.map(json.list, function(produto) {
return {
data: produto, // todos os dados do produto
value: produto.id, // o valor lógico do produto
result: produto.nome // o que vai aparecer ao selecionar
};
});
}
,formatItem: function(produto) { // o que vai aparecer na lista de autocomplete
return produto.nome + " - " + produto.id;
}
}).result(function(e, produto) {
$("#nomeDoComponenteOndeQueroColocar").val(produto.id);
});
o valor do id do produto será colocado no campo escolhido… (Alias, poderia ser qualquer valor que venha com o json
ATENÇÃO: sou completamente novato em scrips, web, java… Assim use a dica acima por sua conta e risco…
Na dúvida, como bem sugeriu o Lucas, consulte a documentação… Demora… mas solução existe! rsrsrsrs