zoukankan      html  css  js  c++  java
  • SpringMVC填坑之旅-返回json数据

    本文是自己开发中所遇到的问题,对一些及百度到的解决方案做一个记录。

    DispatcherServlet配置文件

        <!-- 定义跳转的文件的前后缀 ,视图模式配置-->
        <bean id="viewResolver"
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->
            <property name="prefix" value="/WEB-INF/jsp/" />
            <property name="suffix" value=".jsp" />
        </bean>

    每次返回数据都被拦截返回成jsp文件,在控制器的方法上添加@ResponseBody注解解决返回页面问题;

    页面接收json数据报错:

    The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.

    解析类型不正确(自己理解)

    配置注解及添加jar包解决:

    <!-- 启用spring mvc 注解 -->
        <context:annotation-config />  
        <mvc:annotation-driven >
            <mvc:message-converters register-defaults="true">
                <!-- Accept-Charset 大量打出问题 -->
                <!-- <bean class="com.panku.common.converter.UTF8StringHttpMessageConverter">
                    <property name="writeAcceptCharset" value="false"></property>
                </bean> -->
                <!-- 将StringHttpMessageConverter的默认编码设为UTF-8 -->
                <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                    <constructor-arg value="UTF-8" />
                    <property name="writeAcceptCharset" value="false"></property>
                </bean>
                <!-- 将Jackson2HttpMessageConverter的默认格式化输出为false -->
                <!-- <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list><value>application/json;charset=UTF-8</value></list>
                    </property>
                    <property name="prettyPrint" value="false"/>
                    <property name="objectMapper">  
                        <bean class="com.panku.common.utils.JsonMapper"></bean>  
                    </property> 
                </bean> -->
                <!-- 支持国产使用fastjson进行转换json字符串 -->
                <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                    <property name="supportedMediaTypes" value="text/html;charset=UTF-8"/>
                    <property name="features">
                      <array>
                        <value>WriteMapNullValue</value>
                        <value>WriteNullStringAsEmpty</value>
                      </array>
                    </property>
                  </bean>
            </mvc:message-converters>
        </mvc:annotation-driven>
    
    <!-- 提供无刷新返回json -->
        <bean
            class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
            <property name="messageConverters">
                <list>
                    <ref bean="mappingJacksonHttpMessageConverter" />
                </list>
            </property>
        </bean>
        <bean id="mappingJacksonHttpMessageConverter"
            class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" >
              <property name="supportedMediaTypes">
                    <list><value>application/json;charset=UTF-8</value></list>
              </property>
              <property name="prettyPrint" value="false"/>
        </bean>

    jar包:

    jackson-annotations-2.7.0.jar,jackson-core-2.7.0.jar,jackson-databind-2.5.5.jar。

  • 相关阅读:
    『中级篇』docker导学(一)
    计算机或许已经烂大街了,女生学计算机没出路吗?
    「初级篇」跟我一起学docker(17)--多节点mesos集群
    「初级篇」跟我一起学docker(18)--持续集成(初级终结篇)
    「初级篇」跟我一起学docker(16)--单节点mesos集群
    QT socket 多线程管理
    mysql数据库引擎 MyISAM和 InnoDB区别
    sql 删除表格delete drop truncate 区别(转)
    按层次遍历二叉树
    php基础排序算法 冒泡排序 选择排序 插入排序 归并排序 快速排序
  • 原文地址:https://www.cnblogs.com/bwcode/p/6281582.html
Copyright © 2011-2022 走看看