在SSM框架整合fastjson的时候出了一个莫名其妙的BUG,报错内容为:元素 ‘mvc:annotation-driven’ 必须不含字符 [子级], 因为该类型的内容类型为“仅元素”。
我的mvc:annotation-driven内容为:
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json</value>
</list>
</property>
<property name="features">
<list>
<value>WriteMapNullValue</value>
<value>QuoteFieldNames</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
搜索了一圈后,有一个博客突然让我想到了一个问题。解决办法很简单。
在mvc:annotation-driven标签所在文件头部检查引入,应该有
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
尤其要注意的是最后一行http://www.springframework.org/schema/mvc/spring-mvc.xsd有没有写错,修改前我的最后一行为http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
修改完成后不报错,正常运行
参考
https://blog.csdn.net/a_keep_going_roc/article/details/89818900
https://blog.csdn.net/Hhellooneworld/article/details/100830519