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"}
答案 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 。
希望这会帮助/指导您。