0

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

我的问题是我仍然是在 Spring 中实现 dojo 的新手,并且不知道如何将我的组合框连接到 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;
    }
}

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

4

1 回答 1

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 相同。
于 2013-03-12T16:22:53.020 回答