@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);
    }
posted @ 2020-11-26 11:18  Kelvin's  阅读(94)  评论(0)    收藏  举报