java - 如何将 Spring MVC 的默认媒体类型从 XML 更改为 JSON

标签 java xml json spring-mvc

标题几乎说明了一切。现在它在我的 Controller 的响应中使用 XML 作为默认值,但我希望它在未指定 Accepts header 或格式参数时使用 JSON 作为默认值。

我的mvc-config.xml

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    <property name="mediaTypes">

        <map>
            <entry key="html" value="text/html" />
            <entry key="json" value="application/json" />
            <entry key="xml" value="application/xml" />
        </map>
    </property>
    <property name="defaultViews">
        <list>
            <bean class="com.work.web.view.json.ExtendedMappingJacksonJsonView">
                <property name="objectMapper">
                    <ref bean="JacksonObjectMapper" />
                </property>
            </bean>
            <bean class="org.springframework.web.servlet.view.xml.MarshallingView">
                <property name="marshaller">
                    <ref bean="Jaxb2Marshaller" />
                </property>
            </bean>
        </list>
    </property>
    <property name="favorParameter" value="true" />
</bean>

<bean
    class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
        <list>
            <bean
                class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
                <property name="objectMapper">
                    <ref bean="JacksonObjectMapper" />
                </property>
            </bean>
            <ref bean="marshallingHttpMessageConverter" />
        </list>
    </property>
</bean>

<bean id="marshallingHttpMessageConverter"
    class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter">
    <property name="marshaller" ref="Jaxb2Marshaller" />
    <property name="unmarshaller" ref="Jaxb2Marshaller" />
</bean>
<bean id="JacksonObjectMapper" class="org.codehaus.jackson.map.ObjectMapper" />
<bean id="JacksonSerializationConfig" class="org.codehaus.jackson.map.SerializationConfig"
    factory-bean="JacksonObjectMapper" factory-method="getSerializationConfig" />
<bean
    class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetObject" ref="JacksonSerializationConfig" />
    <property name="targetMethod" value="setSerializationInclusion" />
    <property name="arguments">
        <list>
            <value type="org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion">NON_NULL</value>
        </list>
    </property>
</bean>
<bean id="Jaxb2Marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    <property name="classesToBeBound">
        <list>
            <value>com.work.Concepts</value>

        </list>
    </property>
</bean>

最佳答案

<property name="defaultContentType" value="application/json" />

设置 ContentNegotiatingViewResolver bean 时

关于java - 如何将 Spring MVC 的默认媒体类型从 XML 更改为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3620323/

相关文章:

java - 将应用程序转换为 MVC 并在控制台和图形用户界面中运行

ruby - XML 到哈希转换 : Nori drops the attributes of the deepest XML elements

python - 在 ElementTree 中处理 CDATA 和注释

javascript - 使用 Javascript 访问 XML 中的 <link> 值

java - Android Studio 错误 : package com. android.vending.billing.util 不存在

java - 计算字符串中的字符频率(Java)

arrays - 如何从 json 文件中删除空对象

python - AttributeError:首选项实例没有属性 '__setattr__'

java - 如何在Gradle中禁止Spotbugs stacktrace?

json - 关于在 Redis 中使用的最佳数据结构的建议?