SpringMVC的json数据绑定Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

总结一下今天遇到的问题:
第一个问题:在使用SpringMVC的时候,前台发送ajax请求传输json数据到后台报错

org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported 

前台代码:

$.ajax({
                url: "${pageContext.request.contextPath}/savePoints",
                type: "post",
                data: JSON.stringify(list),
                contentType: "application/json",
                success: function (result) {
                    alert("Ok!");
                },
                fail: function (result) {
                    alert("failed!");
                }

            });

后台:

@RequestMapping("/savePoints")
    @ResponseBody
    public void savePoints(@RequestBody List list){
        logger.info(list);
        //......
    }

原因应该是出在SpringMVC对json数据的接收上面。搜索了很多解决办法,有说加入jackson-mapper-asl.jar包的,然后在spring配置文件中加入如下内容


    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <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>text/html;charset=UTF-8value>
            list>
        property>
    bean>

配置文件的配置信息跟jackson的版本有关:

第一种应该是spring3之前:
'org.springframework.http.converter.json.MappingJacksonHttpMessageConverter'
第二种是spring3之后:
'org.springframework.http.converter.json.MappingJackson2HttpMessageConverter'

运行之后又报了新的错误:

java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonProcessingException  

这个错误就好看懂了一点,应该是jackson的核心jar包没有引入,于是我又加入了这些jar包:
这里写图片描述
后面就没有报错了,数据也接收正常。
于是我删掉了jackson-mapper-asl.jar包,只保留了jackson的三个核心包,结果还是正常。

最新的配置是: jackson的三个jar包和spring文件里面的MappingJackson2HttpMessageConverter的配置。

你可能感兴趣的:(Questions,&,Answers,SpringMVC)