我们知道,在日常开发过程中,不管是传统的ssm项目,还是spring boot项目,从前端传递过来的参数,我需要对参数进行处理,下面介绍几个在spring boot项目中对请求参数的注解,主要几个:@Param、@PathVariable、@RequestParam、@RequestBody,还有一个对日期做处理的注解@Jsonformat

@Param

这个注解表示,当我们传递的参数有多个的时候,如果不对参数添加此注解,那么在mybatis的xml文件中的sql语句,参数则要写成arg0、arg1、arg2…等或者param1、param2、param3…等,添加了此注解,在注解参数中指定name,那么在xml文件的sql语句中就可以用指定的name

下面来看看具体怎么用

Spring Boot 入参传的不是JSON 报错_json数据


Spring Boot 入参传的不是JSON 报错_json数据_02

@PathVariable

这个注解表示将前端传递的请求url中的占位符参数,例如{id}与对应的处理器中的参数进行绑定

我们在前端传递的url

Spring Boot 入参传的不是JSON 报错_json数据_03


后端对参数的处理

Spring Boot 入参传的不是JSON 报错_json数据_04

@RequestBody

这个注解表示接收从前端传递的json数据,这个json数据是放在请求实体中的,那么既然是请求实体,在前端发送方式就不能是get方式了,就要用post了,RequestBody和RequestParam可以同时使用,但是RequestBody对参数只能使用一次,而RequestParam可以在不同的参数进行使用

Spring Boot 入参传的不是JSON 报错_数据库_05


Spring Boot 入参传的不是JSON 报错_json数据_06

@RequestParam

这个注解表示前端传递的数据是以key/value的形式,多个参数前使用RequestParam注解

Spring Boot 入参传的不是JSON 报错_json数据_07


Spring Boot 入参传的不是JSON 报错_数据库_08

@JsonFormat

当我们将数据库中的时间从后端传递到前端展示时,前端解析日期会出现差异,没有跟数据库中的数据对应,此时我们可以在实体类中对应的字段上面添加此注解,并指定与数据库中的日期格式一致即可

Spring Boot 入参传的不是JSON 报错_数据库_09


Spring Boot 入参传的不是JSON 报错_json数据_10