Blza pessoal,
Estou tentando utilizar o ExtJS com json no VRaptor.
O json está sendo gerado corretamente, mas quando tento fazer a chamada no extjs o controller não é acionado.
Segue meu código:
Controller:
import java.util.GregorianCalendar;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.view.Results;
import br.com.k2studio.condominio.pojo.Contato;
@Resource
public class JsonController {
private final Result result;
public JsonController(Result result) {
this.result = result;
}
@Path("/json")
public void json() {
Contato contato = new Contato("Maria","11-12345678","maria@provedor.com", new GregorianCalendar(1984, 02, 01).getTime());
result.use(Results.json()).from(contato).serialize();
}
}
A chamada que faço para teste é: localhost:8080/vraptor/json -> Assim ele chama o controller e faz o download do json
E assim faço no ExtJS:
<script>
Ext.onReady(function(){
//data store que le os dados vindos do json
//experimente substituir contatojson.jsp por contatos.json - tera o mesmo efeito
var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy(
new Ext.data.Connection({
url:'/json'
})
),
reader:new Ext.data.JsonReader({
totalProperty:'total',
root:'rows',
fields: [
'nome',
'telefone',
'email',
{name: 'aniversario', type: 'date', dateFormat: 'd/m/Y'}
]
})
});
// cria o grid
var grid = new Ext.grid.GridPanel({
store: store,
columns: [
{header: "NOME", width: 170, sortable: true, dataIndex: 'nome'},
{header: "TELEFONE", width: 150, sortable: true, dataIndex: 'telefone'},
{header: "EMAIL", width: 150, sortable: true, dataIndex: 'email'},
{header: "DATA NASC.", width: 100, sortable: true, dataIndex: 'aniversario',
renderer: Ext.util.Format.dateRenderer('d/m/Y')}
],
title: 'Grid com Json - Extjs',
height:230,
width:590,
renderTo: document.body,
frame:true
});
//le os dados
store.load();
//div do grid
grid.render('grid-json');
});
</script>
Só que desse forma não funciona…ele rederiza o grid sem os dados.
Acredito que seja alguma coisa com a URL, pois se estivesse correta, o controller seria acionado.
Alguém tem uma dica?
Vlww
[]'s
Daniel