我花了一个多小时试图找到这个问题的答案,这似乎应该反映一个常见的用例,但我无法弄明白!
基本上我正在使用Spring MVC编写一个文件服务控制器。 URL的格式为http://www.bighost.com/serve/the/path/to/the/file.jpg
,其中“/ serve”之后的部分是所请求文件的路径,该文件可能具有任意数量的路径段。我有一个像这样的控制器:
@Controller
class ServerController {
@RequestMapping(value = "/serve/???")
public void serve(???) {
}
}
我想弄清楚的是:我用什么代替“???”使这项工作?
我有两个关于如何运作的理论。
第一个理论是我可以取代第一个“???”在RequestMapping中,路径变量占位符具有一些特殊的语法,意思是“捕获到路径的末尾”。如果常规占位符看起来像“{path}”那么也许我可以使用“{path:**}”或“{path:/}”或类似的东西。然后我可以使用@PathVariable注释来引用第二个“???”中的路径变量。
另一个理论是我可以取代第一个“???”用“**”(匹配任何东西),Spring会给我一个API来获取路径的其余部分(匹配“**”的部分)。但我找不到这样的API。
感谢您提供的任何帮助!