SpringBoot 请求参数

@PathVariable 接收路径参数

带路径占位符的 URL 是 Spring3.0 新增功能,通过@PathVariable可以将 URL 中占位符参数绑定到控制器的处理方法入参中。

属性
类型
是否必要
说明

name

String

指定请求参数绑定的名称,如果省略则绑定同名参数

value

String

name属性性的别名

required

boolean

指示参数是否必须绑定

必须路径变量

路径变量是必须的,否则会匹配到404请求。

/**
 * http://localhost:8080/users/1
 */
@GetMapping("/users/{id}")
public String users(@PathVariable("id") Integer id) {
    return "Hello, World!";
}

在这里,Spring 会尝试将路径变量id绑定到id参数上,例如发送/user/1,此时id的值会被绑定为1。

可选路径变量

@GetMapping可以同时匹配到多个请求路径时,我们可以通过设置require=false来表示当前路径变量为可选值。如果设置required=true时,,访问/books时会抛出500错误。

以下实现展示了 Spring 4.1 以及JDK 8 的可选类arrow-up-right如何提供另一种使用可选路径变量的方法:

在这里,Spring 创建了Optional<Integer> 实例, 使用参数id来保存id的值。如果id存在,id形参将包装其值,否则,id 将包装 null 值。然后,我们可以使用OptionalisPresent() get() orElse()方法来处理该值。

接收时间参数

在使用路径变量来接收时间参数时,需要制定接受的时间格式类型

@MatrixVariable 接收矩阵变量

MatrixVariable注解拓展了URL请求地址的功能。使用@Matrixvariable注解时多个变量可以使用;(分号)分隔,该注解允许开发者进行多条件组合査询。

属性
类型
是否必要
说明

name

String

指定请求参数绑定的名称,如果省略则绑定同名参数

value

String

name属性的别名

pathVar

String

matrix variable所在路径的url path变量的名称

required

boolean

指示参数是否必须绑定

defaultValue

String

如果没有传递参数而使用的默认值

GET 请求参数接收

实体类接收

通过实体类接收GET请求参数时,要求参数名称保持一致。

@RequestParam 接收

属性
类型
是否必要
说明

name

String

指定请求参数绑定的名称

value

String

name属性的别名

required

boolean

指定参数是否必须绑定

dafaultValue

String

如果没有传递参数而使用的默认值

@RequestParam注解用于将请求参数绑定到方法参数上,他有以下三个常用参数:

  1. value:(或name)用于指定要绑定的请求参数名称,这是唯一必须的参数。

  1. required:布尔值,用于指定参数是否必须,默认值是true。

  1. defaultValue:用于指定在请求中未提供参数值时的默认值。

通过这种方式接收请求参数时,如果请求参数和方法参数名称一致时,@RequestParam注解可以省略。

使用Map接收

在使用Map接受请求参数时,@RequestParam必须添加,用于将请求参数注入到map中。

接收数组参数

接收时间参数

@DateTimeFormat设置接收参数格式,@JsonFormat设置响应时间格式


如果要单个接收的话,使用下面的方式,对时间参数使用@DateTimeFormat进行注解。


全局配置时间类型参数的格式。

POST 请求参数接收

用实体类接收JSON数据

用Map接收application/x-www-form-urlencoded格式的数据

用Map来接收json数据

@RequestBody注解用于将请求体中的json字符串转化为对象属性,并注入到map

@RequestHeader

最后更新于