スプリング コントローラーは 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;
}
ExtJ:
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 アノテーションを使用した明示的なマッピングは必要ないと思っていました。