ContentNegotiatingViewResolver vs. HttpMessageConverter+ResponseBody Annotation
2015-05-22 18:04
453 查看
之前一直在用@ResponseBody注解的方式进行restful开发,在看书的时候又看到了ContentNegotiatingViewResolver,顿时就疑惑了,这两个东西的功能不是重复了吗?在网上搜索一番,也没有结果,最后google+spring文档,终于明白了,这里解释一下。
ContentNegotiating 是将controller的返回结果委托给ViewResolver,这里你可以使用spring内置的各种ViewResolver或者定制自己的,所以json的返回数据,将展示在一个页面中!也就是说除了json的数据,也可以有其他的html元素,是一个完整的试图。
而@ResponseBody注解则会绕过ViewResolver,将controller的返回结果交给HttpMessageConverter,然后将转换后的消息返回,也即是返回的是纯数据。
ContentNegotiating 是将controller的返回结果委托给ViewResolver,这里你可以使用spring内置的各种ViewResolver或者定制自己的,所以json的返回数据,将展示在一个页面中!也就是说除了json的数据,也可以有其他的html元素,是一个完整的试图。
而@ResponseBody注解则会绕过ViewResolver,将controller的返回结果交给HttpMessageConverter,然后将转换后的消息返回,也即是返回的是纯数据。
相关文章推荐
- @ResponseBody 返回json字符串的核心类是org.springframework.http.converter.json.MappingJacksonHttpMessageConverter,它使用了Jackson 这个开源的第三方类库。主要是以下两个jar包:jackson-core-asl-1.6.4.jar;jackson-mapper-asl-1.6.4.jar
- HttpMessageConverter(消息转换器 )和@responsebody使用
- HttpMessageConverter(消息转换器 )和@responsebody使用
- HttpMessageConverter和ContentNegotiatingViewResolver
- Spring Rest的注解annotation和配置文档(ContentNegotiatingViewResolver)的区别
- Spring 4 MVC ContentNegotiatingViewResolver Example
- org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing
- SpringMVC大坑一枚:ContentNegotiatingViewResolver可能不利于SEO
- SpringMVC ContentNegotiatingViewResolver -- 根据请求资源名选择视图
- Spring mvc 视图解析器 ContentNegotiatingViewResolver 源码分析
- spring-freemarker.xml 视图解析器 ContentNegotiatingViewResolver 源码分析
- Spring ContentNegotiatingViewResolver
- # 两种方案解决no suitable HttpMessageConverter found for response type
- SpringMVC之ContentNegotiatingViewResolver实现根据请求资源名选择视图
- 转载Spring 3 MVC ContentNegotiatingViewResolver
- spring-mvc多视图解析配置实例 ContentNegotiatingViewResolver
- Spring MVC-ContentNegotiatingViewResolver
- 实现Spring 4 MVC ContentNegotiatingViewResolver example
- ContentNegotiatingViewResolver spring REST中的内容协商(同一资源,多种展现:xml,json,html)
- Spring mvc 视图解析器 ContentNegotiatingViewResolver 源码分析