httpMessageConverter接口
负责将请求信息转换一个对象,并把对象绑定到请求方法的参数中或作为相应信息
- dispatchServlet默认装配了requestMappingHandlerAdapter作为HandlerAdapter组件的实现类
接口方法
p49
装配其他类型httpMessageConverter 可以在spring-config中自行定义一个requestMappingHandlerAdapter
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters"
<list>
<bean class="…"/>
</list>
</property>
</bean>
转换json数据
spring提供了处理json请求响应的httpMessageConverter:MappingJacksonHttpMessageConverter
配置
<!-- 配置方案 自动注册requestMappingHandler和requestMappingHandlerAdapter -->
<mvc:annotation-driven/>
<!-- dispatcherServlet会截获所有请求路径,而引入javascript时的路径会被看成请求路径,会报出404错误,加入默认servlet时找不到回去找静态内容 -->
<mvc:default-servlet-handler/>
自定义httpMessageConverter接收json数据
使用默认servlet相应静态文件
<mvc:default-servlet-handler/>
配置自定义httpMessageConverter
<!-- 设置配置方案 -->
<mvc:annotation-driven>
<!-- 设置不使用默认的消息转换器 -->
<mvc:message-converters register-defaults="false">
<bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
<bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter"/>
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
<bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter"/>
<!-- 配置fastJson -->
<bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<!-- 支持的媒体类型 -->
<property name="supportedMediaTypes">
<list>
<!-- 不先写text/html ie会出现下载提示 -->
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>