2012-03-22 55 views
2

我使用Spring MVC和jQuery的自动完成,我的春天控制器看起来像这样Spring MVC的使用jQuery自动完成不返回结果

@RequestMapping(value ="/searchit.htm", method=RequestMethod.GET) 
    @ResponseBody 
    protected String testIt(Model model){ 
     gsonutil = new GsonUtil<YBusiness>(); 
     String result = MyManager.search();  
     model.addAttribute("result",result); 
     return "jsonNames"; 

    } 

我“jsonNames”豆配置是这样的。

<bean name="jsonNames" 
     class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" /> 

一切正常,我的自动完成的击球控制,但响应不返回结果,我非常肯定,有一些错误的,我的Spring MVC控制器的方法,因为如果我通过了源数组(具有一些预填充值)它的工作原理。

回答

1

几件事情错了/不充分的代码片断您提供:

  1. 的注释@ResponseBody告诉Spring MVC中,该方法的返回值应该是填充作为HTTP请求的响应。鉴于上述控制器方法,如果您点击http://yourserver/context/searchit.htm,您可能会看到一个带有“jsonNames”的html。因此删除注释。 (提示甚至在将此url与您的autosuggest挂钩之前,请使用您的浏览器检查url是否按预期响应)

  2. 如果您打算使用MappingJacksonJsonView,则应在Spring上下文Bean容器中定义一个BeanNameViewResolver bean。这个视图解析器告诉Spring MVC,应该使用控制器方法返回的字符串来匹配在上下文中定义的bean名称,在你的情况下“jsonNames”

  3. 当你有上述工作,即弹簧MVC bean配置正确,并且您的控制器正在返回JSON,您将不得不检查返回的格式是否与您的前端自动建库库兼容,如果没有,您在控制器中还有更多工作要做。

参考文档,大部分的Spring MVC是非常简单的http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html 希望这有助于。

+0

是的..它工作..很多很多 – Ashish 2012-03-27 19:23:34