0

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 注释进行任何显式映射。

4

1 回答 1

0

我错过了将杰克逊转换器添加到消息转换器的机会。

于 2013-09-30T05:21:49.920 回答