1).spring 对JSON的支持依赖2个jar包
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-core-asl</artifactId>
- <version>1.8.4</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- <version>1.8.4</version>
- </dependency>
2.加入开启注解支持<mvc:annotation:driven/>。默认初始化DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter。AnnotationMethodHandlerAdapter默认开启7个消息转换器,分别是:
ByteArrayHttpMessageConverter
StringHttpMessageConverter
ResourceHttpMessageConverter
SourceHttpMessageConverter<T>
XmlAwareFormHttpMessageConverter
Jaxb2RootElementHttpMessageConverter
MappingJacksonHttpMessageConverter
a.如何寻找对应的converter
a1.注册消息转换器
a2.从客户端请求的header中寻找客户端可以接收的类型,比如 Accept application/json,application/xml等,组成一个集合
a3.HttpMessageConverter 具有canRead和canWrite方法 返回值都是boolean,验证HttpMessageConverter是否支持当前请求的读与写,读对应@RequestBody注解, 写对应@ResponseBody注解
a4.遍历HttpMessageConverter集合与前面获取可接受类型进行匹配,如果匹配直接使用当前第一个匹配的HttpMessageConverter,然后return.匹配根据accept和返回的类型
如
StringHttpMessageConverter
支持String , Accept所有类型
MappingJacksonHttpMessageConverter
支持Map List 实体对象等等 ,Accept:application/json
3.根据需求修改AnnotationMethodHandlerAdapter的HttpMessageConverter集合。
<beans:bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<beans:property name="messageConverters">
<beans:list>
<beans:bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
<beans:bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
<beans:bean class="org.springframework.http.converter.ResourceHttpMessageConverter"/>
<beans:bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"/>
<beans:bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter"/>
</beans:list>
</beans:property>
</beans:bean>
4.代码中加入@ResponseBody和@RequestBody以支持ajax
5.前台ajax调用$.getJSON(account/availability, { name: $('#name').val() },
相关推荐
这个项目提供的示例工程应该包含了一个工作流程的完整实例,从Ajax请求到Spring MVC的处理,再到JSON响应的返回,帮助开发者理解并掌握这一技术栈的使用。通过深入研究和实践,你将能够熟练地在自己的项目中应用这些...
在Spring MVC中集成Ajax,通常会在前端使用JavaScript库如jQuery来发送Ajax请求。例如,我们可以创建一个AJAX函数,通过`$.ajax()`或`$.getJSON()`等方法向后台发送异步请求。这些请求通常带有特定的URL和参数,对应...
本文将深入讲解如何在Spring MVC中通过AJAX发送请求,并返回JSON(JavaScript Object Notation)数据。 首先,AJAX请求通常由JavaScript代码触发。在提供的示例中,我们看到一个名为`saveSynchronizedVcHorse`的...
在这个例子中,前端向'/api/posts'发送GET请求,Spring MVC的Controller收到请求后,查询数据库并返回JSON格式的文章列表。前端的success回调函数接收到数据后,将文章标题添加到页面的列表中。 总结起来,这个"一...
在Spring MVC中,可以通过配置Ajax处理器或使用jQuery等库来实现Ajax请求。这样,用户可以进行数据的增删查改,而界面保持不刷新,提升了交互性。 在给定的"Spring + Hibernate + Spring mvc +Ajax 整合"项目中,...
例如,当用户在前端进行某些操作,如提交表单,我们可以使用Ajax发送POST请求到Spring MVC的Controller,Controller处理业务逻辑后,将结果以JSON或其他格式返回。JavaScript接收到响应后,可以在前端动态更新页面,...
Spring MVC还提供了`@JsonView`注解来控制JSON响应中的数据粒度,以及`@JsonProperty`和`@JsonIgnore`来控制哪些字段应包含在JSON中。 **jQuery和JavaScript** jQuery是一个流行的JavaScript库,简化了DOM操作、...
在Spring MVC中,Controller可以返回JSON格式的数据响应Ajax请求。通过在@RequestMapping注解中指定produces="application/json",表明该方法将返回JSON数据。然后,使用@RequestBody或@ResponseBody注解将HTTP请求...
在Web开发中,Spring MVC和Ajax是两种非常重要的技术。Spring MVC作为Spring框架的一部分,提供了一种模型-视图-控制器的架构模式,使得开发者能够更好地组织和管理后端业务逻辑。而Ajax(Asynchronous JavaScript ...
在Spring MVC中,通过配置JSON视图解析器,我们可以将Java对象转换为JSON格式,以便通过HTTP响应返回给客户端,如AJAX请求。Spring MVC内置了Jackson和Gson等库,可以方便地实现JSON序列化和反序列化。 二、Spring ...
本示例探讨的是如何利用Spring MVC后端框架与前端的Ajax技术来实现高效的文件上传,相较于传统的表单提交方式,这种方法具有无刷新、用户体验更佳的优势。以下是关于这个主题的详细讲解。 首先,我们需要理解Spring...
5. Content-Type 设置:为了使Spring MVC能够识别JSON数据,需要在Ajax请求中设置Content-Type头为"application/json"。例如,在jQuery中: ```javascript $.ajax({ url: "/api/endpoint", type: "POST", ...
在本示例中,“mvc-ajax.rar_spring mvc”是一个包含使用Ajax技术与Spring MVC集成实现账号添加功能的项目。让我们深入探讨这个主题。 首先,Spring MVC是Spring框架的一个组件,专门用于处理Web应用程序的请求和...
在这个例子中,`/users`路径的GET请求会调用`getUsers`方法,该方法返回一个User对象列表,Spring MVC会自动将这个列表转换成JSON格式,并发送给客户端。 在实际项目中,我们还需要配置数据访问层(如JPA、...
通过使用Jackson,我们可以方便地处理Ajax请求返回的JSON数据。例如,后端控制器可以创建一个返回JSON响应的方法,该方法将数据转化为JSON格式,然后利用Jackson的`ObjectMapper`类将其写入HTTP响应的输出流。 ```...
4. **JSON与Ajax**:Spring MVC 3与jQuery或其他JavaScript库配合,可以方便地实现Ajax请求和响应,以JSON形式进行数据交换。 **二、常见错误解决** 1. **406 Not Acceptable**:这个错误通常是因为客户端没有在...
3. 异步请求(如AJAX)中,通过`@ResponseBody`返回JSON数据,更新页面部分区域。 4. 实现RESTful API,使用HTTP动词(GET, POST, PUT, DELETE)和资源路径,配合JSON数据进行增删查改操作。 综上所述,Spring MVC...
4. **客户端调用**:在客户端,使用AJAX或者其他JSON-RPC客户端库,向服务器发送请求并处理返回的结果。 例如,一个简单的JSON-RPC服务类可能如下: ```java @Service("jsonRpcService") public class ...
例如,在Spring MVC中,你可以创建一个控制器方法,使用`@RequestBody`注解来接收JSON数据: ```java @PostMapping("/api/endpoint") public ResponseEntity<?> handleJsonRequest(@RequestBody YourPojo yourPojo)...
3. **数据绑定**:Spring MVC支持JSON或XML格式的数据交换,jQuery可以通过Ajax请求发送和接收这些格式的数据。使用`@RequestBody`和`@ResponseBody`注解,Spring MVC可以将JSON数据自动映射到Java对象。 4. **表单...