我有一个基于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;
}
}
任何提示或想法都表示赞赏。感谢。
答案 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);
}
}