spring contentNegotiationManager的defaultContentType设置成application/json,但是默认却返回xml格式数据,怎么办才能设置默认返回json格式?
配置如下:
<bean id="contentNegotiationManager"
             class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
    <property name="favorPathExtension" value="true" />
    <property name="favorParameter" value="true" />
    <property name="parameterName" value="mediaType" />
    <property name="ignoreAcceptHeader" value="true"/>
    <property name="useJaf" value="false"/>
    <property name="defaultContentType" value="application/json" />
 
    <property name="mediaTypes">
        <map>
            <entry key="json" value="application/json" />
            <entry key="xml" value="application/xml" />
       </map>
    </property>
</bean>

 <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">  
<property name="contentNegotiationManager" ref="contentNegotiationManager"/>  
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
</list>
</property>
</bean>

解决方案 »

  1.   

    schema文件用3.2版本的
    <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager"/>
    <bean id="contentNegotiationManager"
                 class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
        <property name="favorPathExtension" value="true" />
        <property name="favorParameter" value="true" />
        <property name="parameterName" value="mediaType" />
        <property name="ignoreAcceptHeader" value="true"/>
        <property name="useJaf" value="false"/>
        <property name="defaultContentType" value="application/json" />
     
        <property name="mediaTypes">
            <map>
                <entry key="json" value="application/json" />
                <entry key="xml" value="application/xml" />
           </map>
        </property>
    </bean>

     <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">  
    <property name="contentNegotiationManager" ref="contentNegotiationManager"/>  
    <property name="defaultViews">
    <list>
     <!-- JSON View -->  
    <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
    <!--  XML view 
        <bean class="org.springframework.web.servlet.view.xml.MarshallingView">  
          <constructor-arg>  
              <bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">  
                 <property name="classesToBeBound">  
                  <list>  
                     <value> com.interlib.journalservice.entity.UnionJournalArticle</value>  
                     <value> com.interlib.journalservice.entity.UnionJournalInfo</value>  
                     <value> com.interlib.journalservice.entity.UnionJournalIssueInfo</value>  
                  </list>  
                 </property>  
              </bean>  
          </constructor-arg>  
        </bean> -->   
    </list>
    </property>
    <property name="viewResolvers">
    <list>
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
    <property name="prefix" value="/jsps/"/>
    <property name="suffix" value=".jsp"/>
    </bean>
    </list>
    </property>
    </bean>