Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 带Dojo和x27的Spring MVC 3;s QueryReadStore_Spring Mvc_Dojo_Spring Roo - Fatal编程技术网

Spring mvc 带Dojo和x27的Spring MVC 3;s QueryReadStore

Spring mvc 带Dojo和x27的Spring MVC 3;s QueryReadStore,spring-mvc,dojo,spring-roo,Spring Mvc,Dojo,Spring Roo,我有一个基于SpringRoo模板的Spring项目。我想在组合框中实现自动完成。经过几个小时的研究,我发现使用dojox.data.QueryReadStore是我最好的选择,因为我将从服务器端获取数据,因此只需要一个简短的选项列表 我的问题是,我对在Spring中实现dojo还是新手,不知道如何将comboBox连接到QueryReadStore。其思想是调用控制器的方法,并在用户输入de comboBox时获取结果 编辑: var store = dojox.data.queryReadS

我有一个基于SpringRoo模板的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;
    }
}
@控制器
类控制器{
@RequestMapping(value=“/something”,method=RequestMethod.GET)
public@ResponseBody List someMethod(@RequestParam(“name”)字符串queryString){
//在这里使用查询字符串
返回字符串列表;
}
}

任何提示或想法都将不胜感激。谢谢。

queryReadstore将接受一个参数作为url:giveyour url

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)中的parametername,这将与筛选选择属性中的searchAttr相同

我添加了一些代码。我使用组合框而不是FilteringSelect,但这并不能改变问题。根据您给我的行,我得到:TypeError:dojox.data.queryReadStore不是一个函数我不知道这些模块是否区分大小写(我想它们是),但这意味着您需要使用dojox.data.queryReadStore。你确定你正在导入QueryReadStore(使用dojo.require)吗?是的,Dimitri,我同意,在我编写代码时没有使用任何IDE,因此错过了语法:)现在更正了它。我有一些改进!还必须将依赖项添加到pom中。在帖子中添加了控制器方法。我让它返回字符串列表:[“aaa”,“abc”]。但是组合框没有显示任何更改:(您的响应的格式不正确。正确的格式应该是{“items”:[{“id”:1,“name”:“aaa”,},{“id”:2,“name”:“abc”,}],“label”:“name”,“identifier”:“id”}。如果您能够正确点击控制器,还可以在控制器中放置一些日志/系统输出。