这篇文章主要讲解了“springmvc如何响应ajax数据请求返回json数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springmvc如何响应ajax数据请求返回json数据”吧!
1、引入依赖
<!--锁定所有spring的版本-->
<properties>
<spring.version>5.0.2.RELEASE</spring.version>
<!--编译版本修改-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.0</version>
</dependency>
<!--多视图解析器-->
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.9.8</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
</dependencies>
2、编写实体类
private String name;
private int age;
private String password;
@JSONField(format = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date date;
3、编写controller控制代码
/**
* 返回java对象
* @param student
* @return
*/
@RequestMapping("/testAjax")
@ResponseBody
public Student testAjax( Student student) {
System.out.println("testAjax is working");
student.setName("tom");
student.setAge(23);
student.setPassword("123456");
student.setDate(new Date());
System.out.println(student);
return student;
}
4、在springmvc中编写配置json解析代码
<!--配置spring开启注解mvc的支持
*配置json格式转化器
-->
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<!--annotation-driven:左右如下
1、会自动注册RequestMappingHandlerMapping、RequestMappingHandlerAdapter、ExceptionHandlerExceptionResolver三个bean支持使用了像@RquestMapping、ExceptionHandler等等的注解的controller 方法去处理请求。
2、支持使用了ConversionService的实例对表单参数进行类型转换。
3、支持使用@NumberFormat、@NumberFormat等注解对数据类型进行格式化。
4、支持使用@Valid对javaBean进行JSR-303验证。
5、支持使用@RequestBody、@ResponseBody。
-->
5、在response.jsp中发送ajax请求数据
$.getJSON("/user/testAjax",function (data) {
console.log(data);
})
测试代码:
1、导入依赖如上相同
2、创建实体类
也就是在之前springmvc中表单提交的时候封装对象的问题,遇见日期类型解决404的问题解决方案一
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date brithday;
private String name;
private int age;
private String password;
@JSONField(format = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date date;
3、编写测试代码
@Test
public void test1() throws Exception{
Man man = new Man();
man.setName("陈多多");
man.setAddress("重庆合川");
man.setBrithday(new Date());
Man man1 = new Man();
man.setName("陈多多");
man.setAddress("重庆合川");
man.setBrithday(new Date());
Man man2 = new Man();
man.setName("陈多多");
man.setAddress("重庆合川");
man.setBrithday(new Date());
//创建list集合转为json
List<Man> ps = new ArrayList<Man>();
ps.add(man);
ps.add(man1);
ObjectMapper objectMapper = new ObjectMapper();
String value = objectMapper.writeValueAsString(ps);
System.out.println(value);
}
@Test
public void test3() throws Exception{
Map<String, Object> map = new HashMap<String, Object>();
map.put("name","陈多多");
map.put("age",23);
map.put("address","重庆合川");
ObjectMapper objectMapper = new ObjectMapper();
String value = objectMapper.writeValueAsString(map);
System.out.println(value);
}
}
测试结果如下:
list集合转化出来是一个数组对象,map结合转化出来和java对象一致
感谢各位的阅读,以上就是“springmvc如何响应ajax数据请求返回json数据”的内容了,经过本文的学习后,相信大家对springmvc如何响应ajax数据请求返回json数据这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/4115727/blog/3084333