【发布时间】:2021-08-09 12:14:16
【问题描述】:
我想从/v1/testId/111 示例网址获取{testId : 111}。
我知道如果使用request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE)方法获取路径变量非常简单。
但是,过滤器在 Servlet 之前执行。
因此,request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE) 方法不可用。
(参考How to get Path Variables in Spring Filter?)
有没有办法在过滤器中检索路径变量?
或者,没有request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE)方法有没有办法检索路径变量?
/v1/testId/111 的字符串实际上是可用的,我打算从中提取 111。
【问题讨论】:
-
你有
/v1/testId/111作为字符串吗? -
@Lajos Arpad 是的,
/v1/testId/111可以使用request.requestURI方法获得。 -
那你为什么不自己拆分uri呢?
-
在上面的例子中,它很容易获得,但如果它变得更加复杂,那就很难了。比如
/v1/testId/111/userId/222,我们如何获取{testId:111, userId:222}?
标签: java spring spring-boot spring-mvc spring-security