`

springmvc之HttpMessageConverter<T>接口 .

 
阅读更多

来源:http://blog.csdn.net/flashflight/article/details/13511679

 

spring从3.0开始提供一个HttpMessageConverter<T>接口,这个接口相当有用,spring可以针对Http报文头的ContentType来调用该类的默认实现类将HttpServletRequest转化成各种对象,如String,MultiValueMap,BufferedImage等类型,所以在做验证码或者上传文件时特别有用。spring默认加载该接口的四个默认实现类:StringHttpMessageConverter,ByteArrayHttpMessageConverter,SourceHttpMessageConverter,XmlAwareFormHttpMessageConverter.其余的例如处理json数据的默认类需要手动配置,具体配置例如:

            <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" p:messageConverters-ref="messageConverters"/>

           <util:list id="messageConverters">

                  <bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter" />

           </util:list>

          *这里用到了p命名空间,具体资料可以自己查阅

 

 

<bean id="stringHttpMessageConverter"
  class="org.springframework.http.converter.StringHttpMessageConverter">
  <property name="supportedMediaTypes">
   <list>
    <value>${html.contentType}</value>
   </list>
  </property>
 </bean>
 <bean id="byteArrayHttpMessageConverter"
  class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
 <bean id="resourceHttpMessageConverter"
  class="org.springframework.http.converter.ResourceHttpMessageConverter" />
 <bean id="sourceHttpMessageConverter"
  class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
 <bean id="allEncompassingFormHttpMessageConverter"
  class="org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter" />

 <bean id="mappingJacksonHttpMessageConverter"
  class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
  <property name="objectMapper">
   <bean class="org.codehaus.jackson.map.ObjectMapper">
    <property name="serializationInclusion" value="NON_NULL" />
    <property name="propertyNamingStrategy">
     <bean
      class="com.ita.kernel.strategy.UseFieldNameStrategy" />
    </property>
   </bean>
  </property>
 </bean>

 <bean
  class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
  <property name="synchronizeOnSession" value="true" />
  <property name="messageConverters">
   <list>
    <ref bean="stringHttpMessageConverter" />
    <ref bean="byteArrayHttpMessageConverter" />
    <ref bean="mappingJacksonHttpMessageConverter" />
    <ref bean="resourceHttpMessageConverter" />
    <ref bean="sourceHttpMessageConverter" />
    <ref bean="allEncompassingFormHttpMessageConverter" />
   </list>
  </property>
 </bean>

项目中spring-mvn有如上的配置,一直不是很清楚为什么这么配置??

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics