在我的控制器类上,我有一个典型的@RequestMapping
注解,其中包含@PathVariable
注解的占位符:
@RequestMapping("/customer/{id}/{whatever}")
public class CustomerController {
@GetMapping
public Customer getCustomer(@PathVariable final int id, @PathVariable final String whatever) {...}
}
现在,我需要将@RequestMapping
模式字符串(如/customer/{id}/{whatever}
)与真实的路径(如/customer/1234/xyz
)进行匹配。因此,我需要知道id
是1234
,whatever
是xyz
。
是否有任何实用方法可以做到这一点?(我需要一个通用的解决方案,而不是上面路径的正则表达式。
2条答案
按热度按时间rbl8hiat1#
我尝试用正则表达式来解决它,但我认为它不太稳定,在特殊情况下会失败:
试验:
首先,我找到所有的"键"并用
"([^\\/\\}]+)"
表达式替换{...}占位符,这给了我一个新的正则表达式,我用它来匹配查找值。但是我对这个手工制作的解决方案不是很满意...
jyztefdp2#
你能解释一下你到底想做什么吗...?
因为根据我的理解,你不想使用@pathvariable注解。
同样,您可以对@Requestparam注解执行相同的操作。
如下所示:/客户?id= 1234 &无论什么=xyz
在控制器中,您可以使用@RequestParam(name =“id”int id)和@RequestParam(name =“whatever”String whatever)