如何从REST URL获取路径变量?

时间:2016-04-12 18:36:24

标签: java rest spring-mvc path-variables

我有网址路径

7854

如何获取orderID 125和{{1}} {{1}}? 目前我通过拆分完整的字符串来处理这个问题,但我不喜欢它。

有替代方案吗?

2 个答案:

答案 0 :(得分:4)

如果您使用Spring REST,则可以使用@PathVariable(" id")long id。例如,对于多个参数:

@RequestMapping(value = "/ex/foos/{fooid}/bar/{barid}")
@ResponseBody
public String getPathValues
  (@PathVariable long fooid, @PathVariable long barid) {
    return "Get a specific Bar with id=" + barid + " from a Foo with id=" + fooid;
}

答案 1 :(得分:1)

正如您在评论中所说,您正在使用Spring MVC。

幸运的是,它提供了一种将URL参数映射到值的非常好的方法!

@RequestMapping(value = "/{bookmarkId}", method = RequestMethod.GET)

如您所见,在操作上,您可以指定bookmarkId。然后指定参数..

Bookmark readBookmark(@PathVariable Long bookmarkId)

现在您可以访问bookmarkId,就好像它是任何其他值一样。

修改

因此,从示例中得出的整个事情看起来像这样:

@RequestMapping(value = "/{bookmarkId}", method = RequestMethod.GET)
Bookmark readBookmark(@PathVariable String userId, @PathVariable Long bookmarkId) {
    this.validateUser(userId);
    return this.bookmarkRepository.findOne(bookmarkId);
}