关于SpringMVC 中服务器端如何响应 AJAX 请求(即controller是如何返回json的)
来源:互联网 发布:树莓派使用ubuntu 编辑:程序博客网 时间:2024/05/05 12:44
简单的来说,注解@ResponseBody是直接返回字符串,而不加这个注解,则springmvc会通过modelandview找到对应的jsp页面,并返回页面内容。(若不理解请看【知识点08】)
至于下图这样,controller直接返回entity层,而页面依然显示为json字符串,是因为springmvc配置中添加了转换器converter:
(其中消息转换器是为了解决返回时中文乱码,起作用的应该是下文示例中MappingJackson2HttpMessageConverter,本文没注入该bean也可使用,是因为mvc:annotation-driven自动注入了。)
<!--添加注解驱动 -->
<mvc:annotation-driven>
<!--消息转换器,解决中文返回乱码问题-->
<mvc:message-convertersregister-defaults="true">
<beanclass="org.springframework.http.converter.StringHttpMessageConverter">
<propertyname="supportedMediaTypes"value="text/html;charset=UTF-8"/>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
将user自动转换为json字符串,然后返回为页面内容。
----------------------------------------------------------------------------------------------------
SpringMVC处理 AJAX请求很简单,只需要在方法的前面加上 @ResponseBody即可。一般返回 String(可以是JSON, XML,普通的 Text),也可以是 Object。
1.返回 Json字符串
1.1.在 controller里添加下面的方法
@RequestMapping(value="/ajax")
@ResponseBody //处理 AJAX请求,返回响应的内容,而不是 View Name
public String handleAjax() {
return "{username: \"Josh\", password:\"Passw0rd\"}";
}
1.2.访问http://localhost:8080/ajax
输出的内容正是方法 handleAjax()里返回的内容。
2.自动把对象转换为 Json
不直接返回 Json字符串,而是返回一个对象,SpringMVC自动的把对象转换为 Json,需要 Jackson。
2.1.在 pom.xml里添加依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.3</version>
</dependency>
2.2.在 spring-mvc.xml里配置 converter
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<beanclass="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-argvalue="UTF-8" />
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<propertyname="objectMapper">
<beanclass="com.fasterxml.jackson.databind.ObjectMapper">
<propertyname="dateFormat">
<beanclass="java.text.SimpleDateFormat">
<constructor-arg type="java.lang.String"value="yyyy-MM-dd HH:mm:ss"/>
</bean>
</property>
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
2.3.在 controller里添加下面的方法
@RequestMapping(value="/json", method= RequestMethod.GET)
@ResponseBody
public Address getAddress() {
Address address = new Address();
address.setId(101);
address.setStreet("五菱街");
return address;
}
2.4.定义 Address类
package domain;
public class Address {
private int id;
private String street;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
2.5.访问http://localhost:8080/json
- 关于SpringMVC 中服务器端如何响应 AJAX 请求(即controller是如何返回json的)
- ajax SpringMVC如何返回json
- SpringMVC如何处理Ajax请求和返回Json对象
- SpringMVC请求的时候是如何找到正确的Controller
- Ajax发送同步请求给Spring,通过controller处理完成后如何返回响应
- springMVC原理(三):详解SpringMVC请求的时候是如何找到正确的Controller[附带源码分析]
- 详解SpringMVC请求的时候是如何找到正确的Controller
- 详解SpringMVC请求的时候是如何找到正确的Controller[附带源码分析]
- 详解SpringMVC请求的时候是如何找到正确的Controller
- 详解SpringMVC请求的时候是如何找到正确的Controller[附带源码分析]
- 关于springmvc的controller返回页面无法跳转,使用ajax
- 关于SpringMVC ajax controller 找不到请求的错误
- SpringMVC响应Ajax请求(@Responsebody注解返回页面)
- SpringMVC从Controller中响应json数据
- SpringMVC从Controller中响应json数据
- SpringMVC从Controller中响应json数据
- SpringMVC中controller返回json数据的两种方法
- springmvc的controller层如何获取到请求的数据
- 迅雷9去右侧浏览器补丁
- 利用Camera和Matrix实现有趣的卡片效果
- HDU5783(2016多校第五场)——Divide the Sequence(水水水)
- 数据结构实验之查找七:线性之哈希表
- 374. Guess Number Higher or Lower *
- 关于SpringMVC 中服务器端如何响应 AJAX 请求(即controller是如何返回json的)
- 定位服务(基于iOS8)
- hdu5794 lucas定理+容斥
- OpenCV图像编程实例-图像文件批量读取
- php上传文件(一)
- 数据库发生变化实时更新前端页面
- 漫话中文自动分词和语义识别:中文分词算法
- 浅析数据结构与算法1--栈和队列
- poj2104 K-th Number (主席树入门题|模板题)