Olá pessoal,
Estou estudando a apostila Fj28 na parte de autocomlete, porém não está carregando a lista na pagina.
Quando chamo o método direto na URL ele passa pelo meu Controller e lista o resultado da minha busca minha busca, já verifiquei diversos exemplos porém não consegui resolver, se alguém tiver uma idéia do que pode estar acontecendo.
JSP:
<head>
<title>Loja</title>
<link href="<c:url value="/goodbuy.css"/>" rel="stylesheet" type="text/css" media="screen" />
<link href="<c:url value="/javascripts/jquery.autocomplete.css"/>" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript" src="/javascripts/jquery.autocomplete.min.js"></script>
<script type="text/javascript" src="/javascripts/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="/javascripts/jquery.validate.min.js"></script>
<script type="text/javascript" src="/javascripts/jquery.puts.js"></script>
<fmt:setLocale value="pt_br"/>
</head>
<div id="body">
<div id="menu">
<ul>
<li><a href="<c:url value="/produtos/novo"/>">Novo Produto</a>
</li>
<li><a href="<c:url value="/produtos"/>">Lista Produtos</a></li>
<li><form action="<c:url value="/produtos/busca.json"/>">
<input id="busca" name="q"/>
</form>
<script type="text/javascript">
$("#busca").puts("Busca produtos por nome");
$("#busca").autocomplete("/produtos/busca.json", {
dataType: "json",
parse: function(produtos) {
return $.map(produtos, function(produto) {
return {
data: produto,
value: produto.nome,
result: produto.nome
};
});
},
formatItem: function(produto) {
return produto.nome + "(" + produto.preco + ")";
}
});
</script>
</li>
</ul>
</div>
Java:
@Get @Path("/produtos/busca.json")
public void buscaJson(String q) {
System.out.println("Passou pelo Controller");
result.use(json()).withoutRoot().from(dao.busca(q)) .exclude("id", "descricao") .serialize();
}