0

我正在尝试使用 Spring MVC 和 Jquery 实现自动完成功能。员工列表来自 DB,但来自 jquery;控制器的功能没有被调用。请看下面的代码。

empDetails.jsp

 `link rel="stylesheet" type="text/css" ` `href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" />
 `

 `<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
 `

 `<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
  `

 `<script type="text/javascript">
 `

$(document).ready(function() {


$(document).ready(function() {

$("#empName").autocomplete({

source: '${pageContext.request.contextPath}/getEmpList'

});

});

</script>



<form:input path="empName" cssClass="input-xlarge" id="empName" />

控制器类

@RequestMapping(value = "/getEmpList", method = RequestMethod.GET, headers = "Accept=*/*")

public @ResponseBody List<String> getEmpNameList(@RequestParam("term") String query) {

List<String> empList = empDetailsService.getEmpNames(query);

return empList;

}

请帮忙。

谢谢

4

1 回答 1

0

我想你忘记了自动完成的 url 中的控制器映射

我希望您的控制器类看起来像这样

 @Controller
 @RequestMapping("/myController")
 public EmpController {
    ...
    @RequestMapping(value = "/getEmpList"  method = RequestMethod.GET, headers = "Accept=*/*")
    public @ResponseBody List<String> getEmpNameList(@RequestParam("term") String query) {
        List<String> empList = empDetailsService.getEmpNames(query);
        return empList;
   }
 }

然后你必须使用这个网址myController/getEmpList${pageContext.request.contextPath}/myController//getEmpList

如果这不能解决问题,那么使用像 firebug 这样的工具来查看客户端发送的内容和服务器返回的内容。

于 2012-08-30T12:02:55.687 回答