使用Jquery进行Ldap自动完成

时间:2011-03-29 06:16:45

标签: jquery spring autocomplete

这是我的剧本

$(document).ready(function(){

        $("#responsable").autocomplete('/personquery');
        minLength: "3";


    });

相应的控制器方法:

    @RequestMapping(value ="/personquery",method= RequestMethod.GET)
 @ResponseBody public void getUids(HttpServletResponse response){

 String personList = null;
 List <Person> ldapUsers = ldap.getUids();
for (int i=0;i<ldapUsers.size();i++) {
    personList+=ldapUsers.get(i).getUid()+"\n";
    System.out.println(ldapUsers.get(i).getUid()+"\n");
}
    }

无论如何,脚本似乎没有调用控制器方法。该方法也可能包含一些错误,因为我无法测试它。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

看起来你正在使用MVC。

我们在其中一个项目中做过类似的事情。这似乎有效:

脚本初始化自动填充文本框。它使用服务调用返回用户名列表

$("#textBoxId").autocomplete({
    source: function (request, response) {
        $.ajax({
            url: '<%: Url.Action("GetADUsers", "ADUser") %>',
            dataType: "json",
            data: request,
            success: function (data) {
                response(data);
            }
        });
    }
});

然后我们在控制器上的动作方法看起来像这样:

public ActionResult GetADUsers(string term)
{
    List<string> users = SearchForUsers(term); //this is just a method that queries AD
    return new JsonResult() { Data = users.ToArray(), JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}