2013-08-20 1 views
1

У меня есть проблемы при использовании Spring MVC:SpringMVC конфликт путем @PathVariable и ресурсы

Я написал контроллер, метод, названный

@RequestMapping ("/ {MODULENAME}/{subModuleName}")
общественного ModelAndView getModuleContent (@PathVariable Строка MODULENAME, @PathVariable Строка subModuleName) {
          ...
}
,

теперь проблема, когда я доступ к статическому ресурсу, например:

http://www.mytomcat:8080/images/testpng 


было бы отображающей этот контроллер, но я не хочу этого, как можно Я разрешаю конфликт?

ответ

0

Конфигурируйте соответствующим образом.

<mvc:resources mapping="/resources/**" location="/public-resources/"/> 
0

Вы можете configure resource handlers для каталогов ресурсов, таких как /images.

Это должно помочь, поскольку сопоставление этих обработчиков будет более конкретным, чем /{moduleName}/{subModuleName}, поэтому обработчики ресурсов должны иметь приоритет.

0

Попробуйте указать регулярное выражение для пути вары:

@RequestMapping(value = "/{year:\\d+}/{month:\\d+}/**", method = RequestMethod.GET)

Это помогает весной, чтобы избежать конфликтов с <mvc:resources/> отображенные на пути, как /images/**. Если ваша переменная path может содержать все, кроме «изображений», вы можете попробовать следующее выражение: (?!images).