前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringMVC内容协商返回jsonxml格式

SpringMVC内容协商返回jsonxml格式

作者头像
stys35
发布2019-03-05 16:29:38
7240
发布2019-03-05 16:29:38
举报
文章被收录于专栏:工作笔记精华工作笔记精华

springMVC内容协商需要引入以下包

代码语言:javascript
复制
<!--springMVC内容协商需要引入以下包-->
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
            <version>2.9.7</version>
        </dependency>
        <dependency>
            <groupId>com.thoughtworks.xstream</groupId>
            <artifactId>xstream</artifactId>
            <version>1.4.11.1</version>
        </dependency>

xml配置

代码语言:javascript
复制
<!-- 内容协商
        favorPathExtension参数表示是否开启后缀,默认true。(使用形如/account/a.json、/account/a.xml的方式)
        favorParameter参数表示是否开启request参数识别,默认false。(使用形如/account/a?format=json、/account/?format=xml的方式)
        parameterName参数表示使用参数的名字,默认format,如果配置为mediaType,则请求格式变为/account/a?mediaType=json
        ignoreAcceptHeader表示是否关闭accept头识别,默认false,即默认开启accept头识别。
        defaultContentType表示服务器默认的MediaType类型。
    -->
    <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" />
                <entry key="string" value="text/plain" />
            </map>
        </property>
    </bean>
    <!-- ========================= VIEW解析定义 ========================= -->
    <!-- 内容协商视图解析器;根据contentNegotiationManager使用的不同mediaTypes决定不同的 view进行响应  默认使用json-->
    <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
        <property name="order" value="0" />
        <!-- 内容协商管理器 用于决定media type -->
        <property name="contentNegotiationManager" ref="contentNegotiationManager"/>
        <!-- 默认视图 解析 -->
        <property name="defaultViews">
            <list>
                <!--是否有根节点的区别,不加配置返回 {"account":{"username":"admin","password":"123456"}} -->
                <!-- 加配置返回 {"username":"admin","password":"123456"}-->
                <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
                    <property name="extractValueFromSingleKeyModel" value="true" />
                </bean>
                <bean class="org.springframework.web.servlet.view.xml.MarshallingView">
                    <property name="marshaller">
                        <bean class="org.springframework.oxm.xstream.XStreamMarshaller"/>
                    </property>
                </bean>
            </list>
        </property>
    </bean>
    <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager" />
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018/11/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • springMVC内容协商需要引入以下包
  • xml配置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档