tôi có các bản đồ sau:biến đường dẫn tùy chọn trong mùa xuân-MVC RequestMapping URITemplate
@RequestMapping(value = "/{first}/**/{last}", method = RequestMethod.GET)
public String test(@PathVariable("first") String first, @PathVariable("last")
String last) {}
nào cho các URI sau:
foo/a/b/c/d/e/f/g/h/bar
foo/a/bar
foo/bar
maps foo- đầu tiên và thanh đến cuối cùng và hoạt động tốt.
Những gì tôi muốn là cái gì đó ánh xạ tất cả mọi thứ giữa foo và bar vào một con đường param duy nhất, hoặc null nếu có giữa không (như trong URI ngoái chẳng hạn):
@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) {}
Khá mắc kẹt trên regex vì tôi đã hy vọng rằng một cái gì đó đơn giản như {middle:. *}, trong đó chỉ bản đồ đến/foo/a/bar hoặc {middle: (. * /) *}, dường như không ánh xạ tới gì cả.
Trình AntPathStringMatcher có mã hóa "/" trước khi áp dụng các mẫu regex không? (làm cho các mẫu chéo/không thể) hoặc có giải pháp?
FYI này là trong mùa xuân 3.1M2
này có vẻ tương tự như @RequestMapping controllers and dynamic URLs nhưng tôi đã không nhìn thấy một giải pháp đó.