Spring MVC之HttpMessageConverter<T>接口

  全路径:org.springframework.http.converter.HttpMessageConverter<T>

  HttpMessageConverter接口负责将请求信息转换为一个T类型的对象,并将T类型对象绑定到请求方法的参数中或输出为响应信息。

  DispatcherServlet默认已经装配配了RequestMappingHandlerAdapter作为HandlerAdapter组件的实现类,即 HttpMessageConvertRequestMappingHandlerAdapter使用,将请求信息转换为对象,或将对象转换为响应信息。

  该接口基本上不用额外配置来使用,除非特别情况,SpringMVCController 提供了@ResponseBody@RequestBody注解来响应和接收JSON格式数据,这是现在通用的方式,无需增加额外配置。下面简单列举下用的比较多的地方:

  1. 反回中文字符乱码,在springmvc.xml添加支持编码格式的注解驱动。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <!-- 注解驱动 -->
    <mvc:annotation-driven>
    <!-- HTML 消息转换 utf-8 -->
    <mvc:message-converters register-defaults="true">
    <bean class="org.springframework.http.converter.StringHttpMessageConverter">
    <property name="supportedMediaTypes">
    <list>
    <value>text/plain;charset=UTF-8</value>
    <value>text/html;charset=UTF-8</value>
    </list>
    </property>
    </bean>
    </mvc:message-converters>
    </mvc:annotation-driven>
  2. MappingJackson2HttpMessageConverter
    Spring 官方说明,SpringMVC默认使用MappingJackson2HttpMessageConverter转换JSON格式的数据。
    Jackson开源类包可以很容易地将 Java 对象转换成json对象和xml文档;同时可以将json对象和xml文档转换成 Java 对象。
  3. 自定义接收Json格式数据的类
    使用流行的fastjson来接收json数据。
作者

光星

发布于

2018-01-12

更新于

2022-06-17

许可协议

评论