Pregunta

Estoy tratando de impulsar la comunicación entre extjs y java, envío solicitudes de extjs a un servidor Java que usa Netty. Apreciaría si alguien pudiera enviarme un ejemplo de cómo se debe formar la respuesta desde el lado de Java y cómo leer los datos de respuesta del lado extjs gracias de antemano. Esta es mi fuente del lado extjs

var store = new Ext.data.JsonStore({
    autoload: true,
    baseParams: {
        conid : '6b09477f-aa04-4f5a-b969-05277d01f07e'
    },
    root: 'OpenCashTime',
    proxy: new Ext.data.ScriptTagProxy({
        url: 'http://localhost:8080/getOpenCash?'
    }),
    fields: [{name: 'Time', mapping: 'Time', type: 'int'}]                  
});
store.load();
store.on('load', function() {
    alert(store.getTotalCount());                   
});
store.on('write', function() {                  
    alert(store.getTotalCount());
});
store.on('loadexception', function() {
    alert("AAAAAA");
});
store.on('metachange', function() {
    //alert(store.getTotalCount());
});
store.on('update', function() {
    //alert(store.getTotalCount());
});
store.on('save', function() {
    //alert(store.getTotalCount());
});
store.on('datachanged', function() {
    //alert(store.getTotalCount());
});

Al ejecutar este código y recibir esta respuesta {"OpenCashtime": [{"Tiempo": 1291623637000}, {"Tiempo": 1294914317000}]} Todavía obtengo una Loadexception aunque incluso Firebug ve su JSON

¿Fue útil?

Solución

Suponiendo de su título, que desea cargar datos en JSONStore, espera una cadena JSON válida, con una propiedad que almacena una variedad de objetos JSON, que se cargará como registros. El nombre de la propiedad está configurado por root Propiedad al configurar JsonStore.

Almacena así:

{
  xtype: 'jsonstore',
  root: 'data',
  idProperty: 'ID',
  fields: [
    {name: 'ID', mapping: 'ID', type: 'int'}
    {name: 'someDate', mapping: 'someDate', type: 'date', dateFormat: 'Y-m-d'}
  ],
  url: 'hereBeYourURl'
}

Con mucho gusto comerá algo como esto:

{"data":[{"ID":"1","someDate":"2002-10-02"},{"ID":"2","someDate":"2002-05-22"}]}

Otros consejos

fields: [{name: 'Time', mapping: 'Time', type: 'int'}]  
fields: [{name: 'Time', type: 'int'}]  

Por cierto, en el caso de un mapeo de identidad, puede dejarlo fuera. Estos dos casos le darán los mismos resultados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top