****@requestbody 的使用
当前端传json字符串的时候,后端可以利用@requestbody用与json字符串对应的类去接,也就是类的属性名和json的key相对应,value可以匹配上数据类型。
前端用ajax跟后端进行交互,ajax代码
$("#").bind('click',function () { //bind点击事件
var studentName = "zhangsan";
var studentNo = 1;
$.ajax({
type:"post", //post
dataType:"json", //接受数据格式
contentType:"application/json", //往前台传送格式,必须写
url:"/student/message",
data:JSON.stringify({ //传送参数
"studentName":studentName,
"studentNo":studentNo
}),
success : function(res) {
if (res.studentNo == null){ //非空验证
alert("没有此主键对应的数据") ;
return ;
}
$("#..").remove();
var str ="";
str += '';
str += '';
...
$("#..").append(str);
},
error : function() {
window.location.href = $.page404;
}
})
})
注意,往前台传参数的时候一定要用JSON.stringify()转换成json格式的字符串。
controller层的使用
@requestMapping(value = "/student")
public ......
@PostMapping(value = "/message")
@ResponseBody
public void message(@RequestBody Student student) {
//TODO 入参校验
log.debug("access message method");
Integer studentNo = student.getStudentNo();
String studentName = student.getStudentName();
....
}
当前端传来多个参数的时候,@RequestBody可以用个实体类去接,实体类里的属性名对应前端参数名。
如果前端只传一个参数,如studentName,也可以这么写。
@requestMapping(value = "/student")
public ......
@PostMapping(value = "/message")
@ResponseBody
public void message(@RequestBody String studentName) {
//TODO 入参校验
log.debug("access message method");
JSONObject jo = JSON.parseObject(studentName);
String studentName = jo.getString("studentName");
....
}
转载注明此地址:https://blog.csdn.net/renhuan28/article/details/80507058