springboot 前后端参数交互方式
Get 方式:
1. localhost:8080/index?id=1
@RequestParam(value = "grade", defaultValue = "") String grade)
2.
localhost:8080/index/{reportType}
localhost:8080/index-{reportType}
@RequestMapping("/commonReportForm/{reportType}")
@ResponseBody
public ModelAndView index(@PathVariable(name = "reportType", required = false) Integer reportType, ModelAndView mv) { ....}
@RequestMapping("/commonReportForm-{reportType}")
@ResponseBody
public ModelAndView index(@PathVariable(name = "reportType", required = false) Integer reportType, ModelAndView mv) { ....}
Post 方式:
直接以一个bean接收
public Object save( User user) {....}
前端传参方式:
- form 表单 – * input 中 name 要与 bean中的属性名相同
- ajax :
$.ajax({
type: "POST",
url: dbrwListpath,
data: {
"id": id,
"name": name,
},
dataType: "json",
success: function (data) {
//do something..
},
error: function (data) {
//do something..
}
});
json 传参方式:
public Object save(@RequestBody User user) {....}
前端ajax:
$.ajax({
type: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
url: dbrwListpath,
data: {
"id": id,
"name": name,
},
dataType: "json",
success: function (data) {
//do something..
},
error: function (data) {
//do something..
}
});
Dto 封装方式:
public Object save(@RequestBody DataDto dto) {....}
public class DataDto{
//学校id
private Integer schoolId;
//幼儿信息
private List<User> users;
//get set ...
}
前端ajax数据格式:
//示例
var user = [];
for (var i = 0; i < clen; i++) {
var c = {};
c.id = 1;
c.name = tom;
user.push(c);
}
//datas属性名需与Dto实体的属性名相同
var datas = {
schoolId:schoolId,
user:user
};
$.ajax({
type: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
url: "/comprehensiveDeclaration/comprehensive-" + comprehensiveId + "/step1-save",
data: JSON.stringify(datas),
dataType: "json",
success: function (response) {
//do something..
},
error: function (data) {
//do something..
}
});