如何从 REST URL 获取路径变量?
How to get pathvariables from a REST URL?
我有 URL 路径
/customer/7854/order/125
如何获得 customerID
7854
和 orderID
125
?
目前我正在通过拆分完整的字符串来处理这个问题,但我不喜欢它。
有其他选择吗?
正如您在评论中所说,您正在使用 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);
}
如果你使用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;
}
我有 URL 路径
/customer/7854/order/125
如何获得 customerID
7854
和 orderID
125
?
目前我正在通过拆分完整的字符串来处理这个问题,但我不喜欢它。
有其他选择吗?
正如您在评论中所说,您正在使用 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);
}
如果你使用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;
}