springmvc Ajax请求返回对象异常问题

在使用ajax post请求,dataType: "json"为预期服务器返回的数据类型,controller通过@responseBody返回封装的SimpleJsonResult对象的情况下,出现报错信息

意思就是不能返回SimpleJsonResult对象,只能返回json数据,但使用SimpleJsonResult封装的对象,能够美化代码以及方便开发。

错误一、@responseBody只能返回字符串格式,如果需要返回SimpleJsonResult,需要在springmvc配置中添加转换器converter,需要在spring-mvc.xml配置文件中添加

<!-- 解决@ResponseBody注解直接返回对象并转换成JSON时出现406问题,同时解决了返回String类型乱码的问题 -->  
    <mvc:annotation-driven>  
        <mvc:message-converters>  
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <!-- HttpMessageConverter<T> 是 Spring3.0 新添加的一个接口,负责将请求信息转换为一个对象(类型为 T),将对象(类型为 T)输出为响应信息  -->
                <property name="supportedMediaTypes">  
                    <list>
                        <!-- 防止乱码 -->
                        <value>text/plain;charset=UTF-8</value>  
                        <value>text/html;charset=UTF-8</value>  
                    </list>  
                </property>  
            </bean>
            <!-- 请求信息转换器,负责读取和写入json格式的数据 -->  
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">  
                <property name="supportedMediaTypes">  
                    <list>  
                        <value>application/json; charset=UTF-8</value>  
                        <value>application/x-www-form-urlencoded; charset=UTF-8</value>  
                    </list>  
                </property>  
            </bean>  
        </mvc:message-converters>  
    </mvc:annotation-driven>

错误二、添加完以后,再次执行,出现错误 

元素 'mvc:annotation-driven' 必须不含字符或元素信息项 [子级], 因为该类型的内容类型为空。

接着找原因,发现我的xml里面的mvc命名空间中xsd版本是3.0的,但是我用的是MappingJackson2HttpMessageConverter转换器,版本是4.X的,解决方案或者转化器为MappingJacksonHttpMessageConverter,或者把xsd版本改为4.0的

错误三、这时候重新执行,还是出现了另外的错误。。。。

Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonGenerator

NoClassDefFoundError错误,应该是缺少架包,加入以下架包,执行正确

<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-databind</artifactId>
	<version>2.7.4</version>
</dependency>
<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-core</artifactId>
	<version>2.7.4</version>
</dependency>
<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-annotations</artifactId>
	<version>2.7.4</version>
</dependency>

finish!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值