Vraptor com autocomplete

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();
	}

isso deve ser por causa do context-path… troque o

"/produtos/busca.json"

por

'<c:url value="/produtos/busca.json"/>'

que deve funcionar

[quote=Lucas Cavalcanti]isso deve ser por causa do context-path… troque o

"/produtos/busca.json"

por

'<c:url value="/produtos/busca.json"/>'

que deve funcionar[/quote]

Não era pra fazer isso no controller, era pra fazer na jsp, na chamada do autocomplete :wink:

Entendi, vou fazer a alteração e fazer novos testes.

Obrigado

Entendi, vou fazer a alteração e fazer novos testes.

Obrigado[/quote]

Lucas fiz a alteração mas não resolveu.


<li><form action="<c:url value="/produtos/busca"/>">
						<input id="busca" name="q"/> 
					</form>
					<script type="text/javascript"> 
						$("#busca").puts("Busca produtos por nome");
						$("#busca").autocomplete('<c:url value="/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>

dependendo da versão do autocomplete que vc baixou, a api dele mudou…

tente seguir a nova documentação:

http://jqueryui.com/demos/autocomplete/#remote-jsonp

vá em view Source, que tem um exemplo do código.

Estou a terminar todo o projeto nas paginas finais.
Se preferirem mandem um email solicitando o projeto para referência.

[quote=djchristiandf]Estou a terminar todo o projeto nas paginas finais.
Se preferirem mandem um email solicitando o projeto para referência.[/quote]

Quero sim, confirme seu email