有没有办法告诉Spring通过路径变量的类型将请求映射到不同的方法,如果它们在uri的同一个地方?
例如,
@RequestMapping("/path/{foo}")
@RequestMapping("/path/{id}")
如果 foo 应该是字符串,id 是 int,是否可以正确映射而不是查看请求 URI?
有没有办法告诉Spring通过路径变量的类型将请求映射到不同的方法,如果它们在uri的同一个地方?
例如,
@RequestMapping("/path/{foo}")
@RequestMapping("/path/{id}")
如果 foo 应该是字符串,id 是 int,是否可以正确映射而不是查看请求 URI?
根据spring docs,可以将正则表达式用于路径变量,这是文档中的示例:
@RequestMapping("/spring-web/{symbolicName:[a-z-]+}-{version:\\d\\.\\d\\.\\d}{extension:\\.[a-z]+}")
public void handle(@PathVariable String version, @PathVariable String extension) {
// ...
}
}
由此看来,应该可以针对您的情况编写如下内容:
@RequestMapping("/path/{foo:[a-z]+}")
@RequestMapping("/path/{id:[0-9]+}")