У меня проблема с сопоставлением запросов Spring 3.0.7 и реализацией стандартной темы Spring.
Мои контроллеры реализованы следующим образом
@ Controller
@RequestMapping(value="myUrl")
Public MyControllerClass
@RequestMapping(Method=requestMethod.GET)
Public myGetHandler (){
}
Таким образом, URL с http://myApp/myUrl обрабатывается, и все хорошо.
Темы активируются по ссылке ссылка
<a href="?theme=mytheme"/>
и весенний конфиг для тем
<bean id="themeChangeInterceptor" class="org.springframework.web.servlet.theme.ThemeChangeInterceptor">
<property name="paramName" value="theme" />
</bean>
Так что, если я нахожусь на странице myUrl и нажимаю эту ссылку, тема загружается, и также вызывается myGetHandler.
однако
если я добавлю параметр в свой URL
/myUrl?someParm=somevalue
теперь мой контроллер работает, как и раньше, и я могу получить доступ к параметру, но нажав на ссылку тем (см. Выше раздел href), которая для этой страницы выглядит следующим образом
/myUrl?theme=myTheme
вызывает исключение и не загружается ни страница, ни тема. Я опубликую трассировку стека позже, но она предложила проблему в контроллере (а не в перехватчике тем).
Как мне сопоставить мой контроллер, чтобы темы и параметризованный URL работали? В идеале я думаю, что хочу изменить свое сопоставление запроса, чтобы оно обрабатывало только мой параметризованный URL и ничего больше?
Я попытался изменить сопоставление моего запроса на
@RequestMapping(value="myUrl",params = "someParam=someValue")
Хотя это работает для ссылок с моими параметрами, это не работает для ссылки на тему.