Весенний запрос Картирование и темы - PullRequest
0 голосов
/ 21 января 2012

У меня проблема с сопоставлением запросов 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") 

Хотя это работает для ссылок с моими параметрами, это не работает для ссылки на тему.

1 Ответ

1 голос
/ 21 января 2012

Я думаю, что в случае, когда URL-адрес с параметрами, нажмите <a href="?theme=mytheme"/> casues double "?" в URL назначения, например, /myUrl?someParm=somevalue?theme=mytheme.

Вы должны использовать что-то вроде c: url или некоторый javascript для создания url только с одним? и & как параметры delimeter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...