http://www.oschina.net/question/129540_25218
HttpMessageConverter(org.springframework.http.converter.HttpMessageConverter接口) 示例 :
StringHttpMessageConverter 从请求和响应读取/编写字符串。默认情况下,它支持媒体类型 text/* 并使用文本/无格式内容类型编写。
FormHttpMessageConverter 从请求和响应读取/编写表单数据。默认情况下,它读取媒体类型 application/x-www-form-urlencoded 并将数据写入 MultiValueMap<String,String>。
MarshallingHttpMessageConverter 使用 Spring 的 marshaller/un-marshaller 读取/编写 XML 数据。它转换媒体类型为 application/xml 的数据。
MappingJacksonHttpMessageConverter 使用 Jackson 的 ObjectMapper 读取/编写 JSON 数据。它转换媒体类型为 application/json 的数据。
AtomFeedHttpMessageConverter 使用 ROME 的 Feed API 读取/编写 ATOM 源。它转换媒体类型为 application/atom+xml 的数据。
RssChannelHttpMessageConverter 使用 ROME 的 feed API 读取/编写 RSS 源。它转换媒体类型为 application/rss+xml 的数据。
SourceHttpMessageConverter 处理请求类型 Request type: text/xml, application/xml
从HTTP request和response读写javax.xml.transform.Source .支持 DOMSource, SAXSource,StreamSource .
BufferedImageHttpMessageConverter 处理请求类型 Request type:支持Java I/O API,
从HTTP request和response中读写java.awt.image.BufferedImage
以上是IBM开源资源库中的一篇文章,我在这篇文章的基础上,结合springmvc-showcase总结更详细更通俗的讲解!!
首先进行准备工作:
- <mvc:annotation-driven/> 该片段默认就加载了HttpMessageConverter接口的7种实现(如:StringHttpMessageConverter,MappingJacksonHttpMessageConverter 等)
- 进行请求提交时,需要指定MediaType,不同的MediaType对应的是不同的HttpMessageConverter接口实现类;见MappingJackson2HttpMessageConverter类只接受application/json类型的请求;
public class MappingJackson2HttpMessageConverter extends AbstractHttpMessageConverter implements GenericHttpMessageConverter { public MappingJackson2HttpMessageConverter() { super(new MediaType[] { new MediaType("application", "json", DEFAULT_CHARSET), new MediaType("application", "*+json", DEFAULT_CHARSET) }); System.out.println("dsfsfsf"); objectMapper = new ObjectMapper(); prefixJson = false; } 。。。。 }
如果进行请求提交和设置mediaType呢?见JS代码:设置AJAX提交的contentType属性即可;同时另外一点要注意:JSON字符串中的KEY,VALUE必须使用双引号,不可以使用单引号;
$.ajax({ type : "POST",///springmvc2/page1.mvc url : "/springmvc2/json.mvc",//http://127.0.0.1:7001/springmvc2/json.mvc contentType : "application/json", data: '{"name":"1212","pwd":"我们"}' , dataType:'json', success: function(msg){ alert( "Data Saved: " +msg.name ); } }); $("form.readJsonForm").submit(function() { var form = $(this); var button = form.children(":first"); var data = form.hasClass("invalid") ? "{ \"foo\": \"bar\" }" : "{ \"foo\": \"bar\", \"fruit\": \"apple\" }"; $.ajax({ type: "POST", url: form.attr("action"), data: data, contentType: "application/json", dataType: "text", success: function(text) { MvcUtil.showSuccessResponse(text, button); }, error: function(xhr) { MvcUtil.showErrorResponse(xhr.responseText, button); }}); return false; });
这些提交的信息如何能够查看呢?使用chrome内核的浏览器的开发者工具:
最后我们如何来控制我们的数据返回格式呢?
http://127.0.0.1:8010/messageconverters/json 它返回的XML格式的内容,其实是MarshallingHttpMessageConverter 转化后的结果,那我们如何指定转化的数据类型的(JSON OR XML)
http://127.0.0.1:8010/messageconverters/json.JSON;使用后缀指出他的返回数据格式
http://127.0.0.1:8010/messageconverters/json 在requestHeader设置
JS代码如下:
$("a.writeJsonLink").click(function() {
var link = $(this);
$.ajax({ url: this.href,
beforeSend: function(req) {
if (!this.url.match(/\.json$/)) {
req.setRequestHeader("Accept", "application/json");
}
},
success: function(json) {
MvcUtil.showSuccessResponse(JSON.stringify(json), link);
},
error: function(xhr) {
MvcUtil.showErrorResponse(xhr.responseText, link);
}});
return false;
});
本文中讲解了MappingJackson2HttpMessageConverter的使用,其他的 HttpMessageConverter都是类似的用法,具体可以看实例。另外官方的案例中的POM缺少相关的依赖内容,请下载我上传的压缩包,里面的JAR依赖是完整的。
总结本文内容如下:
1.如何使用HttpMessageConverter进行请求数据的转化
2.如何使用HttpMessageConverter转化输出数据的格式
3.如何使用开发工具进行相关属性的查看
相关推荐
NULL 博文链接:https://liyaxi.iteye.com/blog/1463587
本书共计10章,分别介绍了快速搭建Spring Web应用、精通MVC结构、URL映射、文件上传与错误处理、创建Restful应用、保护应用、单元测试与验收测试、优化请求、将Web应用部署到云等内容,循序渐进地讲解了Spring MVC4...
3.Spring MVC 请求参数的获取案例 4.Spring MVC 域对象共享数据案例 5.Spring MVC @ModelAttribute 注解案例 6.Spring MVC 国际化案例 7.Spring MVC 请求转发与请求重定向案例 8.Spring MVC 下载 Excel 文档的需求...
spring mvc restful service,支持string, json, xml, maven工程,可以直接运行
Spring MVC--6.RESTful SpringMVC CRUD
使用SpringMVC构建web(包括RESTful)应用程序的初学者。使用Tomcat作为默认嵌入式容器 Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,其本身就是 Spring 框架的一部分,可以与 Spring ...
使用Spring 3 来创建 RESTful Web Services
Java SSM项目是一种使用Java语言和SSM框架(Spring + Spring MVC + MyBatis)开发的Web应用程序。SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、...
3. Spring框架: - Spring Boot - Spring MVC - Spring Data - Spring Security - Spring Cloud 4. Web开发: - HTML、CSS、JavaScript - HTTP协议 - Servlet、JSP - AJAX、JSON、XML 5. 框架和工具...
去几年,REST逐渐成为影响Web框架、Web协议与Web应用设计的重要概念...更进一步,如果你手头有一个Spring MVC应用,使用了控制类继承(SimpleFormController等),你可能还意识不到现在的Spring MVC对REST广泛的支持。
spring-rest-exception-handler, 一个方便的RESTful api Spring MVC 异常 spring REST异常处理程序 这个项目的目的是为for提供一个方便的异常处理程序( 解析器),它满足了错误响应的最佳实践。 处理自定义异常。...
使用Spring4 MVC 构建RESTful服务器,输出JSON格式的数据结构
Database interaction using Spring and Hibernate/JPA- Spring Data JPA- Spring Data MongoDB- Messaging, emailing and caching support- Spring Web MVC- Developing RESTful web services using Spring Web ...
本书共计10章,分别介绍了快速搭建Spring Web应用、精通MVC结构、URL映射、文件上传与错误处理、创建Restful应用、保护应用、单元测试与验收测试、优化请求、将Web应用部署到云等内容,循序渐进地讲解了Spring MVC4...
3. Spring框架: - Spring Boot - Spring MVC - Spring Data - Spring Security - Spring Cloud 4. Web开发: - HTML、CSS、JavaScript - HTTP协议 - Servlet、JSP - AJAX、JSON、XML 5. 框架和工具...
$ git clone https://github.com/MahmoudAhmadOsman/spring-boot-mvc-restful-api.git 贡献 如果对此项目有任何疑问,或者有任何建议也值得欢迎,请随意对此进行纠正并纠正我。 我的网站 请访问我的网站 社交媒体 ...
3. Spring框架: - Spring Boot - Spring MVC - Spring Data - Spring Security - Spring Cloud 4. Web开发: - HTML、CSS、JavaScript - HTTP协议 - Servlet、JSP - AJAX、JSON、XML 5. 框架和工具...
Building RESTful Web Services with Spring 5 – Second Edition: Leverage the power of Spring 5.0, Java SE 9, and Spring Boot 2.0 Find out how to implement the REST architecture to build resilient ...