spring 控制器返回一个 json 输出来填充 extJs 组合框。我正在使用 spring 3.0.2 并且包含 jackson 2.2.3 库。
控制器类:
@RequestMapping(value="getStates.json", method = RequestMethod.GET)
public @ResponseBody Map<String,? extends Object> loadStates() {
HashMap<String, List<State>> modelMap = new HashMap<String,List<State>>();
modelMap.put("states", stateService.getBrazilianStates());
System.out.println("Returning : " + modelMap.size());
return modelMap;
}
ExtJs:
Ext.onReady(function(){
var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: 'getStates.json'
}),
reader: new Ext.data.JsonReader({
root:'states'
},
[{name: 'code'},
{name: 'name'}
])
});
var combo = new Ext.form.ComboBox({
id: 'statesCombo',
store: store,
displayField: 'name',
valueField: 'code',
hiddenName : 'codeId',
typeAhead: true,
mode: 'local',
fieldLabel: 'States of Brazil',
anchor: '100%',
forceSelection: true,
triggerAction: 'all',
emptyText:'Select a state...',
selectOnFocus:true
});
然而,组合框下拉菜单是空的。
我究竟做错了什么?
我希望不需要使用@responsebody 注释进行任何显式映射。