使用@pathparam和@requestmapping获取null

时间:2017-01-15 03:12:33

标签: spring-boot

我使用spring-boot 1.4.3.RELEASE创建Web服务,而在使用http://localhost:7211/person/get/ram发出请求时,我的id属性为null

@RequestMapping(value="/person/get/{id}", method=RequestMethod.GET, produces="application/json")
    public @ResponseBody Person getPersonById(@PathParam("id") String id) {
        return personService.getPersonById(id);
    }

你可以建议我,我有什么遗漏。

4 个答案:

答案 0 :(得分:33)

获取路径变量的注释是 @PathVariable 。看起来你已经使用了@PathParam,这是不正确的。

查看此内容以获取更多详细信息:

requestparam-vs-pathvariable

答案 1 :(得分:7)

如上所述,应该使用 @PathVariable ,我认为是要清除 @PathVariable和@PathParam之间的混淆。

大多数人对此感到困惑,因为 Spring和其他Jersey实现对同一件事使用明显不同的注释

@QueryParam在泽西岛在Spring Rest API中是 @RequestParam

@PathParam在泽西岛在Spring Rest API中是 @PathVariable

答案 2 :(得分:0)

{p> id应为Long,而不是String @PathVariable。如果是,那么......

@RequestMapping(value="/person/get/{id}", method=RequestMethod.GET, produces="application/json")
public @ResponseBody Person getPersonById(@PathVariable("id") Long id) {
    return personService.getPersonById(id);
}

答案 3 :(得分:0)

使用@PathVariable注释代替@PathParam。