【问题标题】:Having some trouble reading JSON response读取 JSON 响应时遇到问题
【发布时间】:2013-02-28 01:19:13
【问题描述】:

我向返回数据库查询结果的 servlet 发出 ajax 请求。 我可以用 firebug 看到响应,我想将这些结果放在我已经创建的列表(或其他..)中。

我尝试阅读this post,但它没有帮助我..

代码:

这是 ajax 请求:

                        Ext.Ajax.request({
                        url: '/VIProject/Container',

                        success: function (action){alert('Lista caricata!'); console.debug(action); },
                        failure: function (){alert('Errore nel caricamento...');},
                        headers: {
                            'my-header': 'foo'
                        },
                        params: { action: "GETCONTAINERLIST" }
                    });

来自 servlet(firebug) 的响应:

{"message":"OK","container":[{"idOrdine":"1","numLotto":"123"},{"idOrdine":"2","numLotto":"321"},{"idOrdine":"3","numLotto":"876"}],"success":true}

列表:

    var listView = Ext.create('Ext.grid.Panel', {
    width:425,
    height:250,
    id: 'lista',
    collapsible:true,
    title:'Simple ListView <i>(0 items selected)</i>',
    store: //???
    multiSelect: true,
    viewConfig: {
        emptyText: 'No images to display'
    },

    columns: [{
        text: 'idOrdine',
        flex: 15,
        sortable: true,
        dataIndex: 'idOrdine'
    },{
        text: 'Last Modified',
        flex: 20,
        sortable: true,
        dataIndex: 'numLotto'
    }]
});

我该怎么办?

【问题讨论】:

    标签: servlets request response extjs4.1


    【解决方案1】:

    我已修改您的代码以使用商店:

    Ext.define('MyModel', {
        extend: 'Ext.data.Model',
        fields: ['idOrdine', 'numLotto']
    })
    
    var listView = Ext.create('Ext.grid.Panel', {
        width:425,
        height:250,
        id: 'lista',
        collapsible:true,
        title:'Simple ListView <i>(0 items selected)</i>',
        store: store: {
            model: MyModel,
            autoLoad: true,
            proxy: {
                type: 'ajax',
                url: '/VIProject/Container',
                reader: {
                    type: 'json',
                    root: 'container'
                }
            }
        },
        multiSelect: true,
        viewConfig: {
            emptyText: 'No images to display'
        },
    
        columns: [{
            text: 'idOrdine',
            flex: 15,
            sortable: true,
            dataIndex: 'idOrdine'
        },{
            text: 'Last Modified',
            flex: 20,
            sortable: true,
            dataIndex: 'numLotto'
        }]
    });
    

    【讨论】:

    • 感谢您的回答。我尝试使用您的代码,但没有任何反应。我的列表是空的.. :s 我有来自 servlet 的响应,但我不能使用这些数据.. 帮助!
    • 您需要发布更多信息。它是否向服务器发出请求?此外,在您的代码中,您永远不会渲染网格。你在别的地方做吗?
    【解决方案2】:

    即使是这样,它也可以工作:

            var proxy=new Ext.data.HttpProxy({url:'/VIProject/Container'});
    
        var reader=new Ext.data.JsonReader({},[
              {name: 'idOrdine', mapping: 'idOrdine'},
              {name: 'numLotto', mapping: 'numLotto'}
         ]);
    
         var store=new Ext.data.Store(    {
             proxy:proxy,
             reader:reader
         });
    
        store.load();
    

    我尝试了各种方式..但我不知道该怎么做!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-26
      • 2016-06-03
      • 2014-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多