我正在开发一个Web应用程序,其功能之一是列出给定路径下的所有文件。我试图将URL的多个段映射到一个PathVariable,如下所示:
@RequestMapping("/list/{path}")
public String listFilesUnderPath(@PathVariable String path, Model model) {
//.... add the file list to the model
return "list"; //the model name
}
没用 当请求网址为时/list/folder_a/folder_aa
,RequestMappingHandlerMapping
抱怨:"Did not find handler method for ..."
由于给定的路径可以包含任意数量的段,因此针对每种可能的情况编写一种方法都是不切实际的。
在REST中,每个URL都是一个单独的资源,因此我认为您不能拥有通用的解决方案。我可以想到两种选择
@RequestMapping("/list/**")
(path
不再需要参数)并从请求中提取整个路径@RequestMapping("/list/{level1}")
,@RequestMapping("/list/{level1}/{level2}")
,@RequestMapping("/list/{level1}/{level2}/{level3}")
...串联在方法体的路径和调用一个方法,没有工作。当然,这有一个缺点,即您只能支持有限的文件夹深度(如果您觉得不太难看,则可以使用这些映射方法创建许多方法)本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句