`
a116475939
  • 浏览: 8258 次
文章分类
社区版块
存档分类
最新评论

关于springMVC 4.x配置ajax-json 出现406错误的问题。

 
阅读更多

一,问题来源:
昨天晚上在搭建ssm框架时,进行到了配置springMVC支持ajax-json的步骤,按照以前做过的springMVC 3.x 框架进行配置。测试访问时,出现了这样的问题。
406错误

二,问题分析:
1,检查Controller中的方法是否添加@ResponseBody。(已添加)
2,检查ajax函数是否没写dataType:’json’。(写上了)
3,检查springMVC.xml关于支持返回json数据的处理。(写上了)

    <!-- 处理请求response返回值,如下配置能正确返回字符串型返回值,如返回值为对象,则自动转为json -->
    <bean id="mappingJacksonHttpMessageConverter"
        class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>application/json; charset=UTF-8</value>
                <value>text/html; charset=UTF-8</value>
            </list>
        </property>
    </bean>
    <bean id="mappingStringHttpMessageConverter"
        class="org.springframework.http.converter.StringHttpMessageConverter" />

    <bean id="handleAdapter"
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 -->
            </list>
        </property>
    </bean>

5,又检查了jackson的jar是否添加(已经添加)。

那么问题在哪里呢?

三,深入分析:
通过查阅资料,发现:
1,springMVC3.x 和springMVC4.x所依赖的jackson的jar包有所变更:
3.x:


       <dependency>  
            <groupId>org.codehaus.jackson</groupId>  
            <artifactId>jackson-core-lgpl</artifactId>  
            <version>1.8.1</version>  
         </dependency>  
        <dependency>  
            <groupId>org.codehaus.jackson</groupId>  
            <artifactId>jackson-mapper-lgpl</artifactId>  
            <version>1.8.1</version>  
        </dependency>

4.x:将使用全新的jackson-annotations-2.5.0.jar,jackson-core-2.5.0.jar,jackson-databind-2.5.0.jar 原有的jar不再使用

        <dependency>
              <groupId>com.fasterxml.jackson.jaxrs</groupId>
              <artifactId>jackson-jaxrs-xml-provider</artifactId>
              <version>2.5.2</version>
        </dependency>

        <dependency>  
            <groupId>com.fasterxml.jackson.core</groupId>  
            <artifactId>jackson-core</artifactId>  
            <version>2.5.2</version>  
        </dependency>  

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

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

2:仔细检查发现:springMVC.xml头文件上的xsi:schemaLocation里版本显示的还是3.x,这里手动改成4.x。
3:spring4.x关于json的配置方式有所变更(重点)
3.x:

<mvc:annotation-driven />
    <!-- 处理请求response返回值,如下配置能正确返回字符串型返回值,如返回值为对象,则自动转为json -->
    <bean id="mappingJacksonHttpMessageConverter"
        class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>application/json; charset=UTF-8</value>
                <value>text/html; charset=UTF-8</value>
            </list>
        </property>
    </bean>
    <bean id="mappingStringHttpMessageConverter"
        class="org.springframework.http.converter.StringHttpMessageConverter" />

    <bean id="handleAdapter"
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 -->
            </list>
        </property>
    </bean>

4.x :

    <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager"/>
    <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
        <property name="favorPathExtension" value="false" />
    </bean>
    <bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>  

    <bean id="stringConverter"  
        class="org.springframework.http.converter.StringHttpMessageConverter">  
        <property name="supportedMediaTypes">  
            <list>  
                <value>text/plain;charset=UTF-8</value>  
            </list>  
        </property>  
    </bean>  

    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  
        <property name="messageConverters">  
            <list>  
                <ref bean="stringConverter" />  
                <ref bean="jsonConverter" />  
            </list>  
        </property>  
    </bean> 

四,问题解决:
通过修改以上配置信息后,问题解决。

五,分析总结:
1,头文件信息要与使用的spring版本一致。
2,spring3MVC和spring4MVC对于 处理返回json 所使用的jar包不同。
3,spring3MVC和spring4MVC 对于springMVC.xml中对于处理返回json配置方式不同。

六,感谢:
http://www.zuidaima.com/question/2051293900327936.htm
这里帮我找到了答案。

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    springmvc-ajax-json

    在这个主题"springmvc-ajax-json"中,我们将深入探讨如何在Spring MVC中整合jQuery和Jackson库,实现前端与后端的数据交互,特别是在使用Ajax进行异步请求时。 首先,Spring MVC 提供了Controller接口和@...

    SpringMVC利用Ajax,JQuery交互Json

    同时,在SpringMVC配置文件中启用Json处理器,例如`dispatcher-servlet.xml`: ```xml &lt;mvc:annotation-driven&gt; &lt;mvc:message-converters&gt; &lt;bean class="org.springframework....

    springMVC+ajax+json

    Spring MVC、Ajax 和 JSON 是现代Web开发中的关键技术,它们共同构建了高效、动态的用户界面。下面将详细解释这三个技术及其在实际应用中的结合。 **Spring MVC** Spring MVC 是 Spring 框架的一部分,用于构建基于...

    SpringMVC框架中传递JSON数据时前台报406错误解决办法

    在这种情况下,逐一排查并修复这些潜在问题,应该能成功解决406错误。 总之,处理Spring MVC中的JSON数据时,理解Content-Type和Accept头的作用至关重要。正确配置Spring MVC的JSON支持,确保前端和后端的数据类型...

    springmvc的ajax配置,实现

    在Spring MVC框架中,Ajax(Asynchronous JavaScript and XML)配置主要涉及到的是前后端异步通信,使得用户在不刷新整个页面的情况下,能够与服务器进行数据交互。Ajax技术结合JSON(JavaScript Object Notation)...

    SpringMVC中后台转换json格式

    本文将详细介绍如何在SpringMVC中后台转换JSON格式,以解决406错误问题。 406错误通常发生在客户端发送了Accept头,表明它期望接收某种特定类型的数据,但服务器无法提供这种类型的数据。在Ajax请求中,这个Accept...

    springmvc + jquery + ajax + json 异步传递数据

    实现SpringMVC、jQuery、Ajax和JSON的异步传递数据,首先需要配置SpringMVC的DispatcherServlet和相关映射。在`web.xml`中,你需要定义一个Servlet来处理所有的HTTP请求。然后,在SpringMVC的配置文件中,设置视图...

    springMVC+json.zip_JSON_myeclipse_springmvc_数据传递

    4. **SpringMVC与JSON的结合**:在SpringMVC中,使用JSON进行数据传递,主要涉及到两个关键类:`HttpMessageConverter` 和 `Jackson` 库。`HttpMessageConverter` 负责将Java对象转换成JSON字符串,或将JSON字符串反...

    spring_mvc_ajax.zip_SpringMVC ajax_SpringMVC+ajax_spring ajax_sp

    本压缩包“spring_mvc_ajax.zip”包含了关于如何结合SpringMVC框架与Ajax技术来实现异步请求的示例和资源。下面将详细介绍这两个技术及其相互配合的应用。 SpringMVC是Spring框架的一部分,它是一个轻量级的模型-...

    springmvc spring hibernate ajax json

    在这个"springmvc spring hibernate ajax json"的简单完整DEMO中,我们可以预期以下几个方面的集成和使用: 1. **Spring MVC** 作为前端控制器,负责接收HTTP请求,调度到相应的Controller处理。 2. **Spring** 通过...

    springmvc接收ajax请求注意事项

    SpringMVC 框架在处理 Ajax 请求时需要注意一些重要的配置和设置,以确保请求的正确处理和数据的正确传输。下面我们将介绍在 SpringMVC 中接收 Ajax 请求的注意事项。 基本数据类型参数传输 在 Ajax 请求中,如果...

    springmvc3.zip

    13. **Ajax**:Spring MVC 也支持异步 JavaScript(Ajax)请求,可以通过 `@ResponseBody` 和 `@RequestBody` 结合 JSON 或 XML 进行数据交换。 14. **RESTful**:Spring MVC 很适合构建 RESTful 风格的 Web 服务,...

    SpringMVC:整合JQUERY与JSON

    - **Ajax请求**:使用jQuery的`.ajax()`或`.getJSON()`发起异步请求到SpringMVC的控制器方法。 - **数据序列化与反序列化**:SpringMVC使用`@RequestBody`和`@ResponseBody`注解将JSON数据自动转换为Java对象,...

    使用Ajax时json需要的jar包

    在描述中提到的问题是关于在JSP页面使用Ajax时,无法获取到后端返回的JSON数据,这通常与缺少必要的JSON处理库有关。这里我们主要讨论的是Jackson库,它是一个广泛使用的Java JSON处理库。 Jackson库提供了一系列的...

    SpringMVC框架下使用jQueryAJAX进行数据交互

    在现代Web应用开发中,SpringMVC框架与jQuery AJAX的结合使用是常见且高效的数据交互方式。本示例将深入探讨如何在SpringMVC环境中利用jQuery的AJAX功能实现动态、无刷新的数据交换。 首先,SpringMVC是Spring框架...

    SpringMVC4.3.6配置json所需要的jar包

    SpringMVC4.3.6配置json所需要的jar包,不是使用最新最高的版本可以的,我尝试了,有错误:严重: Servlet.service() for servlet [springMVC] in context with path [/30-returnVoid-ajax] threw exception [Handler...

    springmvc 2.zip

    在 "springmvc 2.zip" 文件中,我们可以预见到一系列与 Spring MVC 相关的资料,可能包括配置文件、源代码示例、教程文档等,这些都是学习和开发 Spring MVC 应用的重要资源。 1. **MVC 模式**:MVC 是一种设计模式...

    SpringMVC包(spring-frame-3.2.0)

    14. **Ajax支持**:SpringMVC可以通过JSON或XML进行异步通信,提供对Ajax请求的友好支持。 15. **Spring集成**:SpringMVC与Spring框架其他模块(如AOP、Transaction Management等)无缝集成,提供全面的企业级应用...

    Springmvc 4.x利用@ResponseBody返回Json数据的方法

    在Spring MVC 4.x版本中,开发者可以使用@ResponseBody注解来简化控制器层向客户端返回JSON格式数据的过程。 ### @ResponseBody注解使用方法 @ResponseBody注解可以作用于方法上,它会指示Spring MVC框架将该方法...

    SpringMVC纯注解配置

    在这个主题中,我们将深入探讨如何利用注解实现SpringMVC的配置以及jQuery如何处理后台返回的JSON对象。 首先,让我们关注SpringMVC中的注解配置。在传统的SpringMVC应用中,我们需要在`web.xml`中声明...

Global site tag (gtag.js) - Google Analytics