我正在使用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帖子。

09-10 12:50
查看更多