一,问题来源:
昨天晚上在搭建ssm框架时,进行到了配置springMVC支持ajax-json的步骤,按照以前做过的springMVC 3.x 框架进行配置。测试访问时,出现了这样的问题。
二,问题分析:
1,检查Controller中的方法是否添加@ResponseBody。(已添加)
2,检查ajax函数是否没写dataType:’json’。(写上了)
3,检查springMVC.xml关于支持返回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" />
</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 />
<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" />
</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"中,我们将深入探讨如何在Spring MVC中整合jQuery和Jackson库,实现前端与后端的数据交互,特别是在使用Ajax进行异步请求时。 首先,Spring MVC 提供了Controller接口和@...
同时,在SpringMVC配置文件中启用Json处理器,例如`dispatcher-servlet.xml`: ```xml <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework....
Spring MVC、Ajax 和 JSON 是现代Web开发中的关键技术,它们共同构建了高效、动态的用户界面。下面将详细解释这三个技术及其在实际应用中的结合。 **Spring MVC** Spring MVC 是 Spring 框架的一部分,用于构建基于...
在这种情况下,逐一排查并修复这些潜在问题,应该能成功解决406错误。 总之,处理Spring MVC中的JSON数据时,理解Content-Type和Accept头的作用至关重要。正确配置Spring MVC的JSON支持,确保前端和后端的数据类型...
在Spring MVC框架中,Ajax(Asynchronous JavaScript and XML)配置主要涉及到的是前后端异步通信,使得用户在不刷新整个页面的情况下,能够与服务器进行数据交互。Ajax技术结合JSON(JavaScript Object Notation)...
本文将详细介绍如何在SpringMVC中后台转换JSON格式,以解决406错误问题。 406错误通常发生在客户端发送了Accept头,表明它期望接收某种特定类型的数据,但服务器无法提供这种类型的数据。在Ajax请求中,这个Accept...
实现SpringMVC、jQuery、Ajax和JSON的异步传递数据,首先需要配置SpringMVC的DispatcherServlet和相关映射。在`web.xml`中,你需要定义一个Servlet来处理所有的HTTP请求。然后,在SpringMVC的配置文件中,设置视图...
4. **SpringMVC与JSON的结合**:在SpringMVC中,使用JSON进行数据传递,主要涉及到两个关键类:`HttpMessageConverter` 和 `Jackson` 库。`HttpMessageConverter` 负责将Java对象转换成JSON字符串,或将JSON字符串反...
本压缩包“spring_mvc_ajax.zip”包含了关于如何结合SpringMVC框架与Ajax技术来实现异步请求的示例和资源。下面将详细介绍这两个技术及其相互配合的应用。 SpringMVC是Spring框架的一部分,它是一个轻量级的模型-...
在这个"springmvc spring hibernate ajax json"的简单完整DEMO中,我们可以预期以下几个方面的集成和使用: 1. **Spring MVC** 作为前端控制器,负责接收HTTP请求,调度到相应的Controller处理。 2. **Spring** 通过...
SpringMVC 框架在处理 Ajax 请求时需要注意一些重要的配置和设置,以确保请求的正确处理和数据的正确传输。下面我们将介绍在 SpringMVC 中接收 Ajax 请求的注意事项。 基本数据类型参数传输 在 Ajax 请求中,如果...
13. **Ajax**:Spring MVC 也支持异步 JavaScript(Ajax)请求,可以通过 `@ResponseBody` 和 `@RequestBody` 结合 JSON 或 XML 进行数据交换。 14. **RESTful**:Spring MVC 很适合构建 RESTful 风格的 Web 服务,...
- **Ajax请求**:使用jQuery的`.ajax()`或`.getJSON()`发起异步请求到SpringMVC的控制器方法。 - **数据序列化与反序列化**:SpringMVC使用`@RequestBody`和`@ResponseBody`注解将JSON数据自动转换为Java对象,...
在描述中提到的问题是关于在JSP页面使用Ajax时,无法获取到后端返回的JSON数据,这通常与缺少必要的JSON处理库有关。这里我们主要讨论的是Jackson库,它是一个广泛使用的Java JSON处理库。 Jackson库提供了一系列的...
在现代Web应用开发中,SpringMVC框架与jQuery AJAX的结合使用是常见且高效的数据交互方式。本示例将深入探讨如何在SpringMVC环境中利用jQuery的AJAX功能实现动态、无刷新的数据交换。 首先,SpringMVC是Spring框架...
SpringMVC4.3.6配置json所需要的jar包,不是使用最新最高的版本可以的,我尝试了,有错误:严重: Servlet.service() for servlet [springMVC] in context with path [/30-returnVoid-ajax] threw exception [Handler...
在 "springmvc 2.zip" 文件中,我们可以预见到一系列与 Spring MVC 相关的资料,可能包括配置文件、源代码示例、教程文档等,这些都是学习和开发 Spring MVC 应用的重要资源。 1. **MVC 模式**:MVC 是一种设计模式...
14. **Ajax支持**:SpringMVC可以通过JSON或XML进行异步通信,提供对Ajax请求的友好支持。 15. **Spring集成**:SpringMVC与Spring框架其他模块(如AOP、Transaction Management等)无缝集成,提供全面的企业级应用...
在Spring MVC 4.x版本中,开发者可以使用@ResponseBody注解来简化控制器层向客户端返回JSON格式数据的过程。 ### @ResponseBody注解使用方法 @ResponseBody注解可以作用于方法上,它会指示Spring MVC框架将该方法...
在这个主题中,我们将深入探讨如何利用注解实现SpringMVC的配置以及jQuery如何处理后台返回的JSON对象。 首先,让我们关注SpringMVC中的注解配置。在传统的SpringMVC应用中,我们需要在`web.xml`中声明...