ExtJS JsonStore и Netty - PullRequest
       18

ExtJS JsonStore и Netty

1 голос
/ 02 февраля 2011

Я пытаюсь улучшить взаимодействие между ExtJS и Java. Я отправляю запросы от ExtJS на сервер Java, использующий netty. Я был бы признателен, если бы кто-то мог выслать мне пример того, как ответ должен быть отформатирован со стороны Java и как читать данные ответа со стороны ExtJS, заранее спасибо. Это мой источник со стороны 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());
});

При выполнении этого кода и получении этого ответа {"OpenCashTime": [{"Time": 1291623637000}, {"Time": 1294914317000}]} Я все еще получаю loadexception, хотя даже firebug видит его Json

Ответы [ 2 ]

2 голосов
/ 02 февраля 2011

Исходя из вашего заголовка, что вы хотите загрузить данные в JsonStore, он ожидает допустимую строку Json со свойством, хранящим массив объектов JSON, которые будут загружены в виде записей.Имя свойства задается свойством root при настройке JsonStore.

Хранить так:

{
  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'
}

С удовольствием съест что-то вроде этого:

{"data":[{"ID":"1","someDate":"2002-10-02"},{"ID":"2","someDate":"2002-05-22"}]}
1 голос
/ 02 февраля 2011
fields: [{name: 'Time', mapping: 'Time', type: 'int'}]  
fields: [{name: 'Time', type: 'int'}]  

Кстати, в случае отображения личности вы можете оставить его вне Эти два случая дадут вам те же результаты.

...