这是我的剧本
$(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");
}
}
无论如何,脚本似乎没有调用控制器方法。该方法也可能包含一些错误,因为我无法测试它。有什么帮助吗?
答案 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 };
}