我有一个 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但我仍然找不到明确的答案,为什么本地数组值会自动过滤,但返回的列表却不会?
我可以通过在查询中过滤自己来使其工作,但由于它使用本地数组进行过滤,我认为它会对从数据库返回的列表执行相同的操作。
我做错了什么吗?数据库中的列表是否应该像本地数组一样进行过滤?
最佳答案
@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;
}
确保你
- 指定response.setStatus(HttpServletResponse.SC_OK);
- 可选,将ContentType设置为application/json,具有@ResponseBody注释,Spring MVC调用基于Jackson JSON处理器构建的MappingJacksonHttpMessageConverter。当您使用 mvc:annotation-driven 配置元素且 Jackson 出现在类路径中时,此实现会自动启用。
关于java - JQuery AutoComplete 与 Spring MVC 返回列表,但未过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11658924/