Spring отсутствует расширение файла

Я разрабатываю приложение с использованием Spring MVC и Extjs, и у меня есть проблема, мне нужно передать путь к файлу на мой контроллер, который собирается удалить изображение с путем. Однако, на мой взгляд, путь правильный, но когда запрос поступает в контроллер, путь без расширения.

Вид: notepad-icon.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;
}

Кто-нибудь может дать мне понимание, пожалуйста?

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, что должно дать вам полное имя файла, однако установить флаг немного сложно.

Просто добавьте {file:.+} В RequestMapping.

@RequestMapping (value = "/delete/{file:.+}", method = RequestMethod.DELETE)
Другие вопросы по тегам