Olá a todos, comecei recentemente a utilizar o Vraptor3, achei muito interessante e funcional, mas como sempre, dúvidas ^^
Já procurei no fórum e não encontrei o que eu queria, caso minha dúvida já exista em algum lugar me perdoem, é o seguinte:
Tenho um método em um Controller que me retorna um JSON, feito abaixo:
@Resource
public class RouteController {
//Construtor e etc...
public void collectPoints(){
List<CollectPoint> collectPointList = collectPointDao.findAll();
this.result.use(Results.json()).from(collectPointList).serialize();
}
}
No meu jsp eu o chamo da seguinte maneira:
$.getJSON('/myProject/route/collectPoints/', function(data) {
alert(data);
});
No caso, o alert nem é exibido, e as demais operações q preciso fazer com esse Json nem são chamadas.
O que pode estar errado? Se ajuda em algo, no firebug o GET fica em loading o tempo todo.
PS: Caso eu acesse pela url http://localhost:8080/myProject/route/collectPoints é exibido o Json corretamente, como abaixo:
{“list”: [{“id”: 1,“name”: “Ponto 1”,“latitude”: “4565”,“longitude”: “5464”},{“id”: 2,“name”: “Ponto 2”,“latitude”: “4565”,“longitude”: “5464”}]}
Por que eu não consigo acessa-lo pelo jsp?
Olá, Robert.
Não sei exatamente qual o seu caso específico, mas talvez você possa tentar outra abordagem para ver se funciona e então comparar com o seu “getJSON”.
A minha sugestão é que você teste com o “ajax” de acordo com o seguinte modelo:
$.ajax(
{
url: "http://localhost:8080/myProject/route/collectPoints",
dataType: "json", //aqui você pode usar "text" se quiser ver o conteúdo ao invés de um objeto.
success: function( data )
{
alert( data );
},
error: function() //Aqui também é possível obter a descrição do erro, etc. Dá uma pesquisada na sintaxe.
{
alert ( "faiô...);
}
});
Sds,
Almir.
[quote]Olá, Robert.
Não sei exatamente qual o seu caso específico, mas talvez você possa tentar outra abordagem para ver se funciona e então comparar com o seu “getJSON”.
A minha sugestão é que você teste com o “ajax” de acordo com o seguinte modelo:[/quote]
Olá Almir, obrigado pela resposta. Bom pelo menos agora o alert me mostrou [object Object]. Nesse caso eu pensei que para iterar sobre o Data eu teria q fazer algo como:
data.each(function() {
alert(this.name)
});
mas não funcionou, tem alguma maneira específica para iterar neste objeto?
Resolvido com:
var colletionPointList = data.list;
for(var i=0; i<colletionPointList.length; i++){
alert(colletionPointList[i].name);
}
Blz! Creio que essa solução vai ajudar a outras pessoas.
Sds,
Almir.
Robert, vc poderia mostrar como ficou seu JSP?
Estou com o mesmo problema e até agora nada. Onde vc usou o seu.
[code]var coollctionPointList = data.list?
for(var =i=0;i<collectionPontList.lenght;i++){
}[/code]
Valeu!!