我用 Spring Boot 3
我不明白两者的区别
@GetMapping(value="/{id}", params="name")
public ResponseEntity<List<PersonPayload>> findPerson(@PathVariable Long id, @RequestParam String name){
...
}
@GetMapping(value="/{id}", params="name")
public ResponseEntity<List<PersonPayload>> findPerson(@PathVariable Long id, @RequestParam("name") String name){
...
}
在getMapping中使用params属性,和使用requestParam是一样的吗?
1条答案
按热度按时间lp0sw83n1#
从作为RequestMapping.params()别名的文档
Map请求的参数,缩小主Map。
适用于任何环境的相同格式:一个“myParam=myValue”样式表达式的序列,**只有当发现每个此类参数具有给定值时,才Map请求。**表达式可以通过使用“!=”运算符求反,如“myParam!=myValue”。也支持“myParam”样式表达式,**此类参数必须存在于请求中(允许有任何值)。**最后,“!myParam”样式表达式表示指定的参数不应该出现在请求中。
例如,假设我们有一个用
GetMappings
注解并用params
指定的方法然后,将
name
作为查询参数的GET
请求将Map到方法findPerson
如果请求参数
name
不存在,则会抛出以下错误@RequestParam(“name”)中提供的值是将带有
name
值的查询参数绑定到变量另一个优点是,我们可以遵循java命名约定的变量,如果查询参数有任何符号或
_