springmvc Ajax请求返回对象异常问题
程序员文章站
2024-01-25 20:02:10
...
在使用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!!!
上一篇: Python 返回值为函数时的布尔值
下一篇: vue 封装的 echarts 组件