【问题标题】:How to get pathvariables from a REST URL?如何从 REST URL 获取路径变量?
【发布时间】:2016-08-03 13:05:53
【问题描述】:

我有网址路径

/customer/7854/order/125

如何获得customerID 7854 和orderID 125? 目前我正在通过拆分完整的字符串来处理这个问题,但我不喜欢它。

有其他选择吗?

【问题讨论】:

  • 您使用什么来设置端点? Spring MVC?

标签: java rest spring-mvc path-variables


【解决方案1】:

如果你使用 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;
}

【讨论】:

    【解决方案2】:

    正如您在 cmets 中所说,您使用的是 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);
    }
    

    【讨论】:

      猜你喜欢
      • 2021-03-31
      • 2019-07-22
      • 2017-09-15
      • 1970-01-01
      • 2021-12-07
      • 2011-02-19
      • 2018-11-13
      • 2013-07-25
      相关资源
      最近更新 更多