码迷,mamicode.com
首页 > 编程语言 > 详细

spring mvc+ajax 实现json格式数据传递

时间:2019-10-01 11:30:34      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:提高   comm   注意   pen   rip   返回   http   cat   qq空间   

技术图片

使用ajax传递JSON对象

下面示例为ajax发送json对象,返回json格式数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$.ajax({
url: "api/user",
type: "POST",
timeout: txnTimeOut,
async: true,
dataType: "json",
data: {username : "lucy"},
//contentType:'application/json;charset=UTF-8',
success: function(e){
if($.txnIsSuzccess(e.respCode)){
//window.location.href=e.codeUrl;
console.log(e);
}else{
exceptionHandle(e);
}
},
error: function(e){
errorHandle(e);
}
});

注意:这里不能加下面这行,否则数据会传不到后台

1
contentType:'application/json;charset=UTF-8',

后台代码

1
2
3
4
5
6
7
@PostMapping(value = "/api/user", produces = "application/json;charset=utf-8")
public Student (String username) {
/* 逻辑代码 */
return null;
}
1
2
//produces属性表示返回数据类型为json
produces = "application/json;charset=utf-8"

使用ajax传JSON字符串,使用@RequestBody接收

传递json格式字符串,返回json数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$.ajax({
url: "find",
type: "POST",
timeout: txnTimeOut,
async: true,
contentType: 'application/json;charset=UTF-8',//关键是要加上这行
dataType: "json",
data: '{"name":"手机","price":999}',
success: function(e){
if($.txnIsSuzccess(e.respCode)){
console.log(e);
}else{
exceptionHandle(e);
}
},
error: function(e){
errorHandle(e);
}
});

后台代码

1
2
3
4
5
6
7
8
9
//consumes的作用是指定请求数据的格式类型,可以同时指定数据格式类型以及字符编码
//produces的作用是指定返回值类型,不但可以设置返回值类型还可以设定返回值的字符编码
@PostMapping(value = "/find", consumes = "application/json;charset=utf-8", produces = "application/json;charset=utf-8")
public User findUserByName(@RequestBody User user) {
log.info("user>>>>> " + user);
return userService.findByName("");
}

ajax代码说明

1
2
3
4
5
6
//contentType指定传递的数据为json字符串(如果不指定为application/json;charset=UTF-8,
//后台无法进行参数绑定)
contentType: 'application/json;charset=UTF-8',//关键是要加上这行
//dataType指定返回的数据为json数据格式
dataType: "json",

java代码说明

1
2
3
4
5
6
7
//consumes的作用是指定请求数据的格式类型,可以同时指定数据格式类型以及字符编码
//produces的作用是指定返回值类型,不但可以设置返回值类型还可以设定返回值的字符编码
@PostMapping(value = "/find", consumes = "application/json;charset=utf-8", produces = "application/json;charset=utf-8")
//@RequestBody注解用来接受json数据,进行参数绑定(如果不在参数前使用此注解,无法进行参数绑定)
//@ResponseBody注解用来生成json数据
public User findUserByName(@RequestBody User user)

注意: ajax代码中必须指定contentType为json数据格式,同时java代码中必须在参数前使用@RequestBody注解,

否则无法进行参数绑定,后台无法获取前台传递的数据

User类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/**
* Created by zhouxu on 2017/12/15 15:58.
*/
public class User {
private String name;
private double price;
public User() {
}
public User(String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "User{" +
"name='" + name + ''' +
", price=" + price +
'}';
}
}

使用ajax请求key/value,输出是json

ajax代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//请求key/value,输出是json
function responseJson(){
$.ajax({
type:'post',
url:'api/user',
//请求是key/value这里不需要指定contentType,因为默认就 是key/value类型
//contentType:'application/json;charset=utf-8',
//数据格式是json串,商品信息
data:'name=手机&price=999',
success:function(data){//返回json结果
alert(data.name);
}
});
}

java代码

1
2
3
4
5
6
7
8
@PostMapping(value = "/api/user")
public User findUserByName(@RequestParam(value = "name") String name, @RequestParam(value = "price") double price) {
//System.out.println("name>>>>>>>>" + name + " price>>>>>>>>" + price);
log.info("name>>>>>>>>" + name + " price>>>>>>>>" + price);
return userService.findByName(name);
}

代码说明

请求是key/value类型,这里不需要指定contentType,因为默认就 是key/value类型

博客中若有错误,欢迎大家指出噢,大家共同学习,共同提高,嘿嘿

分享

原文:大专栏  spring mvc+ajax 实现json格式数据传递


spring mvc+ajax 实现json格式数据传递

标签:提高   comm   注意   pen   rip   返回   http   cat   qq空间   

原文地址:https://www.cnblogs.com/petewell/p/11614999.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!