我正在使用 Spring MVC 和 extjs 4 中的视图开发应用程序。此时,我必须创建一个显示用户列表的 Grid。
在我的 Spring MVC 控制器中,我有一个 Get 方法,它以 json 格式返回用户列表,其中“items”作为根。
@RequestMapping(method=RequestMethod.GET, value="/getUsers")
public @ResponseBody Users getUsersInJSON(){
Users users = new Users();
users.setItems(userService.getUsers());
return users;
}
如果我尝试使用浏览器访问它,我可以正确看到 jsondata。
{"items":[{"username":"name1",".....
但我的问题与 Ext.data.Store 的请求有关
我的脚本如下:
Ext.onReady(function(){
Ext.define('UsersList', {
extend: 'Ext.data.Model',
fields: [
{name:'username', type:'string'},
{name:'firstname', type:'string'}
]
});
var store = Ext.create('Ext.data.Store', {
storeId: 'users',
model: 'UsersList',
autoLoad: 'true',
proxy: {
type: 'ajax',
url : 'http://localhost:8080/MyApp/getUsers.html',
reader: {type: 'json', root: 'items'}
}
});
Ext.create('Ext.grid.Panel',{
store :store,
id : 'user',
title: 'Users',
columns : [
{header : 'Username', dataIndex : 'username'},
{header : 'Firstname', dataIndex: 'firstname'}
],
height :300,
width: 400,
renderTo:'center'
});
});
当商店尝试检索数据并启动 http 请求时,在我的萤火虫控制台中出现 OPTIONS getUsers.html 而浏览器中的请求启动 GET getUsers.html
因此,Ext.data.Store 没有元素,并且网格显示为带有列名但没有数据。也许我错过了什么
谢谢