阅读 268

Java后端避坑——方法参数绑定的@RequestBody和@PathVariable注解

在项目的增加、删除、查询、修改等操作中,都要用到PUT、DELETE、GET和POST这四个请求。在这些方法的参数上通常我们需要绑定@RequestBody和@PathVariable这两个注解,来实现对应的请求。

@RequestBody 注解作用在形参列表上,用于将前台发送过来固定格式的数据xml或json封装到对应的JavaBean对象,封装时使用到的一个对象是系统默认配置的HttpMessageConventer进行解析,然后封装到形参上

因为PUT请求和POST请求有请求体,比如我们进行添加或更新操作的时候,在操作的对象上加上@RequestBody获取前端的xml或json数据。

示例程序如下:

@PostMapping("/")
public RespBean addJobLevel(@RequestBody JObLevel jObLevel){
   if (jobLevelService.addJobLevel(jObLevel)==1){
         return RespBean.ok("添加成功!");
        }
        return RespBean.error("添加失败!");
}
@PutMapping("/")
public RespBean updateJobLevelById(@RequestBody JObLevel jObLevel){
   if (jobLevelService.updateJobLevelById(jObLevel)==1){
         return RespBean.ok("更新成功");
        }
       return RespBean.error("更新失败");
}
复制代码

@PathVariable 注解用于绑定它传过来的值到方法的参数上,用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出URI模板中的变量作为参数

例如DELETE请求中的路径中只有一个条件,那么我们可以使用@PathVariable ,如果有多个条件的话,就使用key/value的方法来处理模板变量。

示例程序如下:

@DeleteMapping("/{id}")
public RespBean deleteJobLevelById(@PathVariable Integer id){
   if (jobLevelService.deleteJobLeveById(id)==1){
         return RespBean.ok("删除成功!");
        }
        return RespBean.error("删除失败!");
}
复制代码

积少成多,滴水穿石!