【问题标题】:JQuery AutoComplete with Spring MVC Returning List, but Not FilteredJQuery AutoComplete 与 Spring MVC 返回列表,但未过滤
【发布时间】:2012-07-25 21:29:01
【问题描述】:

我有一个 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 中的列表是否应该像本地 Array 一样过滤?

【问题讨论】:

  • 请发布您的代码。没有它很难说有什么问题。

标签: java jquery spring spring-mvc


【解决方案1】:
@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 存在于您的类路径中时,此实现会自动启用。

【讨论】:

    猜你喜欢
    • 2018-07-09
    • 2012-09-05
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 2012-08-11
    • 1970-01-01
    相关资源
    最近更新 更多