1

我有一个 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但我仍然找不到明确的答案为什么本地数组值会自动过滤但返回的列表没有?

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

难道我做错了什么?数据库中的列表是否应该像本地数组一样被过滤?

4

1 回答 1

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。当您使用 mvc:annotation-driven 配置元素和 Jackson 存在于您的类路径中时,此实现会自动启用。
于 2013-01-31T15:54:07.207 回答