使用Spring MVC返回列表的JQuery AutoComplete,但未过滤

时间:2012-07-25 21:29:01

标签: java jquery spring spring-mvc

我有一个Spring应用程序,我想在JQuery中实现自动完成功能。如果我有一个本地数组,它可以很好地工作,并在输入框中输入值时过滤列表。如果我将其更改为使用数据源,它将返回列表但不会根据输入框的条目过滤列表。

我已经多次阅读过Jquery UI教程并使用了位于http://viralpatel.net/blogs/spring-3-mvc-autocomplete-json-tutorial/的示例 和http://blog.m1key.me/2011/10/jquery-ui-autocomplete-spring-mvc.html但我仍然无法找到明确的答案为什么本地数组值会自动过滤,但返回的列表不会?

我可以通过在我的查询中过滤自己来实现它,但由于它使用本地数组进行过滤,我认为它会对从db返回的列表执行相同的操作。

我做错了吗?是否应该以与本地数组相同的方式过滤db中的列表?

1 个答案:

答案 0 :(得分:0)

@RequestMapping(value = "/getProductAutoCompleteList.do", method = RequestMethod.GET, headers="Accept=*/*")
    public @ResponseBody List<String> getProductAutoComplete(@RequestParam("term") String prodName, HttpServletResponse response){
        logger.info("getProductAutoCompleteList called with parameter: " + prodName);
        response.setStatus(HttpServletResponse.SC_OK);
        final List<String> productList = ProductSearchHelper.getProductAutoCompleteList(prodName);


        response.setContentType("application/json");
        return productList;
    }

确保你

  1. 指定response.setStatus(HttpServletResponse.SC_OK);
  2. 可选,setContentType为application / json,具有@ResponseBody注释,Spring MVC调用基于Jackson JSON处理器构建的MappingJacksonHttpMessageConverter。当您在类路径中使用带有Jackson的mvc:annotation-driven配置元素时,将自动启用此实现。