具有jquery自动完成功能的Spring MVC不返回结果

时间:2012-03-22 07:16:48

标签: jquery spring spring-mvc

我正在使用Spring MVC和jquery自动完成,我的spring控制器看起来像这样

@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配置如下。

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

一切正常,我的自动完成正在击中控制器,但没有返回结果响应,我非常确定我的spring MVC控制器方法有问题,因为如果我传递源数组(有一些预填充值)它有效。

1 个答案:

答案 0 :(得分:1)

您提供的代码段几乎没有错误/不足:

  1. @ResponseBody注释告诉Spring MVC应该将该方法的返回值填充为HTTP请求的响应。鉴于上面的控制器方法,如果你点击http://yourserver/context/searchit.htm,你可能会看到一个写有“jsonNames”的html。所以删除注释。 (在使用您的自动提示连接此网址之前提示,请使用您的浏览器检查网址是否按预期响应)

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

  3. 在完成上述工作后,即Spring MVC bean配置正确并且您的控制器返回JSON,您将必须检查返回的格式是否与您的前端autosuggest库兼容,如果没有在控制器中你还有更多工作要做。

  4. 参考文档,大多数情况下Spring MVC非常简单http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html 希望这会有所帮助。