使用Java将数据从数据库设置到Extjs网格

时间:2018-08-08 06:56:43

标签: java database post extjs grid

2.0来自sencha,但我是前端开发的新手, 在Extjs中,我创建了一个网格

List.js

Ext.define('Cmd.view.main.List', {
extend: 'Ext.grid.Panel',
xtype: 'mainlist',   
requires: [
  'Cmd.store.Personnel'
     ],
title: 'Integrantes del equipo',
store: {
    type: 'personnel'
},

columns: [
    { text: 'Nombre',  dataIndex: 'nombre', flex: 1 },
    { text: 'Matricula', dataIndex: 'matricula', flex: 1 },
    { text: 'Tipo', dataIndex: 'tipo', flex: 1 }
],listeners: {
    select: 'onItemSelected'
}});

和一个数据存储文件

Personnel.js

Ext.define('Cmd.store.Personnel', {
requires: [
    'Ext.data.Store',
    'Ext.data.proxy.Proxy',
    'Ext.data.reader.Reader',
],
extend: 'Ext.data.Store',
alias: 'store.personnel',
autoLoad: false,
remoteSort: false,
proxy: {
    type    :   'ajax',
    method  :   'POST',
    url: '/list',
    reader: {
        type: 'json',
        rootProperty: 'items'
    }
}});

有人告诉我要使用POST方法在JSONObject中发送数据,所以我尝试在Java中做到这一点

Test.java

//I do a connection to a database and get some data
//put the data into JSONObject then
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
    try {
        HttpPost request = new HttpPost("http://localhost:18080/mvnXD/mvnXD/list");
        StringEntity params = new StringEntity(json.toString());
        request.addHeader("content-type", "application/json");
        request.setEntity(params);
        httpClient.execute(request);
        System.out.println(request.getMethod());
    // handle response here...
    } catch (Exception ex) {
        // handle exception here
    } finally {
        httpClient.close();
    }

所以通常我想将数据库中的数据存储到网格中,但是我无法做到,通常我找不到太多关于Java和extjs的信息

我想念什么?我认为这可能很明显:/ 任何建议都会有所帮助!谢谢你的建议

编辑

我的JSONObject看起来像这样

{"tipo":"Alumno","matricula":"1828","nombre":"Jaime Alberto Castillo"}

1 个答案:

答案 0 :(得分:1)

要点1:

如果您的JSON如下所示:-

{
    "tipo": "Alumno",
    "matricula": "1828",
    "nombre": "Jaime Alberto Castillo"
}

然后,您需要从商店的代理中删除rootProperty: 'items'。 而且,如果您不想删除rootProperty: 'items',那么您的JSON应该如下所示:-

{
    "items": [{
        "tipo": "Alumno",
        "matricula": "1828",
        "nombre": "Jaime Alberto Castillo"
    }]
}

要点2:

您需要在商店中设置load时调用商店的autoLoad: false,方法。

请参见 this example

希望这会帮助/指导您。