@RequestBody ,@RequestParam和@PathVariable
| 注解 | 适用 | 备注 |
|---|---|---|
| @RequestBody | post方法提交参数 | @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的) |
| @RequestParam | get方法提交参数 | |
| @PathVariable | Restful风格 |
示例:
get方法传参:前端:
axios({
method: 'get',// 设置请求方式
url: `http://localhost:8001/attendance2/exportAttendance`,// 设置请求地址
params: {
test: 1
},
responseType: 'blob'
}).then(function (res) {
get方法传参:后端:
@ApiOperation(value = "导出考勤信息")
@GetMapping("exportAttendance")
public void exportAttendance(HttpServletResponse response, @RequestParam int test){
System.out.println(test);
try {
service.downloadAttendance(response);
} catch (IOException e) {
e.printStackTrace();
}
}
post方法传参:前端:
export function publish(annotation) {
return request({
url: '/annotation/publish',
method: 'post',
data: annotation
})
}
post方法传参:后端:
@PostMapping("publish")
@ApiOperation(value = "发布公告")
// 参数Annotation是前端传递过来的一个类对象,匹配这里的类
public R publish(@RequestBody Annotation annotation) {
System.out.println(annotation.toString());
// service是处理该Annotation实体类的逻辑方法,调用save方法,将获取的公告信息保存到数据库中
// 返回值是布尔类型, true保存成功,false保存失败
boolean save = annotationService.save(annotation);
if (save) {
// 保存成功,返回保存成功的状态信息R.ok是状态信息,具体可以看类R
return R.ok();
} else {
return R.error().msg("公告发布失败");
}
}
@PathVariable使用:
前端:
export function getAnnotationBId(id) {
return request({
url: `/annotation/getAnnotationById/${id}`,
method: 'get'
})
}
后端:
@GetMapping("getAnnotationById/{id}")
@ApiOperation(value = "根据ID查询公告")
public R getAnnotationById(@PathVariable String id) {
QueryWrapper<Annotation> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", id);
// getOne表示根据queryWrapper条件获取一条数据,因为一个ID只对应一条公告
Annotation annotation = annotationService.getOne(queryWrapper);
// 将获取到的公告数据通过json格式,返回给前端
return R.ok().data("annotation", annotation);
}

浙公网安备 33010602011771号