我正在使用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控制器方法有问题,因为如果我传递源数组(有一些预填充值)它有效。
答案 0 :(得分:1)
您提供的代码段几乎没有错误/不足:
@ResponseBody注释告诉Spring MVC应该将该方法的返回值填充为HTTP请求的响应。鉴于上面的控制器方法,如果你点击http://yourserver/context/searchit.htm,你可能会看到一个写有“jsonNames”的html。所以删除注释。 (在使用您的自动提示连接此网址之前提示,请使用您的浏览器检查网址是否按预期响应)
如果您打算使用MappingJacksonJsonView,则应在spring context bean容器中定义BeanNameViewResolver bean。这个视图解析器告诉Spring MVC,从控制器方法返回的String应该用于匹配上下文中定义的bean名称,在你的情况下是“jsonNames”
在完成上述工作后,即Spring MVC bean配置正确并且您的控制器返回JSON,您将必须检查返回的格式是否与您的前端autosuggest库兼容,如果没有在控制器中你还有更多工作要做。
参考文档,大多数情况下Spring MVC非常简单http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html 希望这会有所帮助。