2

我正在使用 Spring MVC 开发应用程序,而 Extjs 和我有一个问题,我需要将文件路径传递给我的控制器,它将删除带有路径的图像。但是在我看来,路径是正确的,但是当请求到达控制器时,路径没有扩展。

查看:记事本图标.png

控制器:记事本图标

@RequestMapping (value = "/delete/{file}", method = RequestMethod.DELETE)
public ModelAndView delete(@PathVariable String file){
    ModelAndView view = new ModelAndView(VIEW);
    service.delete(file);
    view.addObject("success", Boolean.TRUE);
    return view;
}

谁能给我一个见解,好吗?

4

2 回答 2

2

如果它是一个简单的扩展,我可以建议这样做:

@RequestMapping (value = "/delete/{file}.{ext}", method = RequestMethod.DELETE)
public ModelAndView delete(@PathVariable("file") String file, @PathVariable("ext") String ext){
    ModelAndView view = new ModelAndView(VIEW);
    service.delete(file + "." + ext);
    view.addObject("success", Boolean.TRUE);
    return view;
}

另一种方法是有点迂回 - 这将通过将useSuffixPatternMatch标志设置RequestMappingHandlerMapping为 false,这应该为您提供整个文件名,但是设置标志有点困难。

于 2012-09-12T19:50:16.670 回答
0

只需将 {file:.+} 添加到 RequestMapping。

@RequestMapping (value = "/delete/{file:.+}", method = RequestMethod.DELETE)
于 2018-11-08T00:36:47.350 回答