有没有办法让Spring通过路径变量的类型将请求映射到不同的方法,如果它们位于uri的相同位置?
例如,
@RequestMapping("/path/{foo}")
@RequestMapping("/path/{id}")
如果foo应该是字符串,id是int,是否可以正确映射而不是查看请求URI?
答案 0 :(得分:8)
根据spring文档,可以将正则表达式用于路径变量,这里是文档中的示例:
@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]+}")