我正在使用Spring MVC 4,我想知道我在类级别使用@RestController
,对于其中一种方法,我正在使用@RequestMapping(headers = "Accept=application/json")
。现在,任何人都可以告诉我为什么仅通过在我的<mvc:annotation-driven />
中使用config-servlet.xml
如何在浏览器上的JSON
中获得响应。我的意思是,使用标头属性只是说此方法只能响应具有此类标头的请求。 MVC4如何知道在浏览器的JSON
中响应。这是我的代码:
我的config-servlet.xml
<beans>
<context:component-scan base-package="com.songs.service.controller" />
<mvc:annotation-driven />
</beans>
我的RestController类
@RestController
@RequestMapping("/songappWS")
public class SongServiceWS
{
@RequestMapping(value = "/topmoviesWS", method = RequestMethod.GET, headers="Accept=application/json")
public List<?> getTopMoviesWS() {
//method logic
return l1;
}
}
最佳答案
Spring在JSON中进行响应的原因是@RestController
隐式意味着对getTopMoviesWS()
方法的响应的处理就好像它具有@ResponseBody
批注(已在Spring 3中出现)一样。
这意味着Spring将使用Jackson JSON库(如果存在于类路径中)将响应转换为JSON。
查看this帖子。