是否必须在休息控制器中使@PathParam参数和函数参数相同

时间:2017-11-16 01:01:20

标签: rest spring-boot

我正在Springboot aplictaion中编写一个Controller。功能调用看起来像

@GetMapping("/data/search")
    public ResponseEntity<Object> searchData(@PathParam("name") String dataName,
    ....

当我在调试模式下运行此操作且网址为.../data/search?name=abc时,我得到变量null的{​​{1}}值。 我得到值dataName,以防我更新变量名称
 abc

根据docs,我应该使用dataName->name,但这也没有区别。

因此必须使变量名称与param名称相同吗?

1 个答案:

答案 0 :(得分:0)

@PathParam是强制性的,必须通过路径传递,在你的情况下应该是/ data / search / {name}然后才能被访问。路径参数不允许默认值。

代表:http://serverhost/data/search/test

另一方面,@ RequestParam可以有一个默认值,在你的网址

中是可选的

代表:http://serverhost/data/search?name=test