ExtJS JsonStore和Netty

ExtJS JsonStore和Netty

问题描述:

我试图强制ExtJS和Java之间的通信我正在从ExtJS发送请求到使用netty的Java服务器。如果有人能够给我一个例子,说明如何从java方面编写响应,以及如何从ExtJS方面提前读取响应数据,我会感到满意。 这是从ExtJS的侧ExtJS JsonStore和Netty

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

我的源代码在执行这个代码,并reciving这个响应{ “OpenCashTime”:[{ “时代”:1291623637000},{ “时代”:1294914317000}]}我仍然得到即使萤火虫看到它的Json

+0

为什么选择ScripTagProxy?你会从跨域来源加载数据吗? – Mchl 2011-02-02 17:32:30

+0

是的,现在我正在测试本地主机加上它不在同一台服务器上运行的Apache Tomcat服务器上的ExtJS和netty部分运行在不同的端口,因此它被视为跨域 – Swine1973 2011-02-02 17:35:51

+1

好吧。对于ScriptTagProxy,您的响应必须如下所示:`callback({“OpenCashTime”:[{“Time”:1291623637000},{“Time”:1294914317000}]})`。 – Mchl 2011-02-02 17:40:36

假设你的标题,你想要加载数据到JsonStore,它期望一个有效的Json字符串,一个属性存储一个JSON对象数组,将作为记录加载。配置JsonStore时,属性名称由root属性设置。

商店这样的:

{ 
    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"}]} 

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

BTW标识映射的情况下,你可以离开它。这两种情况会给你 的结果相同。