我有以下映射:
@RequestMapping(value = "/{first}/**/{last}", method = RequestMethod.GET)
public String test(@PathVariable("first") String first, @PathVariable("last")
String last) {}
对于以下 URI 来说:
foo/a/b/c/d/e/f/g/h/bar
foo/a/bar
foo/bar
将foo映射到first并将bar映射到last并且工作正常。
我想要的是将 foo 和 bar 之间的所有内容映射到单个路径参数,或者如果没有中间(如上一个 URI 示例)则为 null:
@RequestMapping(value = "/{first}/{middle:[some regex here?]}/{last}",
method = RequestMethod.GET)
public String test(@PathVariable("first") String first, @PathVariable("middle")
String middle, @PathVariable("last") String last) {}
非常卡在正则表达式上,因为我希望像 {middle:.*} 这样简单的东西,它只映射到 /foo/a/bar,或者 {middle:(.*/)*},它似乎什么都没有映射。
AntPathStringMatcher 是否在应用正则表达式模式之前对“/”进行标记?(制作跨越 / 不可能的模式)还是有解决方案?
仅供参考,这是在春季 3.1M2
这似乎类似于@RequestMapping 控制器和动态 URL,但我在那里没有看到解决方案。