使用Dojo的QueryReadStore的Spring MVC 3

时间:2013-03-12 15:57:36

标签: spring-mvc dojo spring-roo

我有一个基于Spring Roo模板的Spring项目。我想在组合框中实现自动完成。经过数小时的研究,我发现使用dojox.data.QueryReadStore是我最好的选择,因为我将从服务器端获取数据,并且只需要一个简短的选项列表。

我的问题是我还是在Spring中实现dojo的新手,并且无法弄清楚如何将我的comboBox连接到QueryReadStore。我们的想法是调用控制器的方法,并在用户输入de comboBox时获取结果。

修改

var store = dojox.data.queryReadStore({url:'/.../something'})
Spring.addDecoration(new Spring.ElementDecoration({elementId : ${fn:escapeXml(fieldname)}, widgetType: 'dijit.form.ComboBox', 
        widgetAttrs : {                   
            hasDownArrow : false,
            store:store,
            searchAttr:"name",
            autoComplete:false,
        }

    }));

控制器:

@Controller
Class controller{
    @RequestMapping(value = "/something", method = RequestMethod.GET)
    public @ResponseBody List<String> someMethod(@RequestParam("name") String queryString){
        //use queryString here
        return listOfStrings;
    }
}

任何提示或想法都表示赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

queryReadstore将接受一个参数url:giveyour url here

var store = dojox.data.QueryReadStore({url:http:// ... .. /someString})
var filteringSelect = new FilteringSelect({
            id: "stateSelect",
            name: "state",
            value: "CA",
            store: stateStore,
            searchAttr: "name"
        }, "stateSelect");

现在可以在dispatcher-servlet.xml中或使用注释将此URL映射到控制器。

@Controller
Class controller{
    @RequestMapping("someString")
    public void someMethod(@RequestParam("name") String queryString){
        //use queryString here
        out.write(response in JSON string format);
    }
}
  • 请注意@RequestParam(parametername)中的参数名称,这与过滤选择属性中的searchAttr相同。