![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
UnicornMirage |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 15.11.2005 Репутация: нет Всего: 1 |
Привет.
Использую Spring MVC 2.5 и annotation based controllers. Тоесть например есть некий контроллер, который маппится на некий url:
Соответственно в web.xml все такие контроллеры обрабатывает spring mvc servlet по такой маске:
Так вот, мне например не нравится маска *.do, и я хочу чтобы все мои контроллеры обрабатывались по маске * Если так сделаю:
То при GET запросе метод SomeController.getView вызовется нормально. Затем ViewResolver правильно припишет к имени вьюхи расширение jsp. Но вот потом request dispatcher эту somePage.jsp уже не находит. Вероятно почему не находит - потому что он опять пытается по маске * определить среди контроллеров нужный маппинг на запрос уже страницы somePage.jsp, а такого контроллера нет! Как быть? Как заставить, чтобы после отработки контроллера в этом случае нормально шел форвард на нужную jsp? В принципе наверное в моем случае это невозможно? Так как forward на jsp страницы также использует маппинг, описанный в web.xml? Это сообщение отредактировал(а) UnicornMirage - 27.8.2009, 23:10 |
||||||
|
|||||||
MisterCleric |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
А почему, собственно, тебя не устраивает мэппинг с суфиксом?
Поблема как раз и заключается в том, что диспатчер нужен для того, что бы определить, какой сервис вызывать. А какой сервис надо вызывать, если у тебя на вход пришел запрос почти на статику - jsp. А как должен себя повести этот диспатчер, если такое у тебя на странице:
Эти запросы ведь тоже соответствуют паттерну /* ты можешь разрулить например так:
Тогда тебе надо везде, где вызов твоих экшенов добавить этот префикс. Но тогда скажи мне, пожалуйста, в чем разница со способом по суфиксу? Можно еще попробовать через через принцип UrlRewrite: UrlRewriteFilter И вот тоже нашел интересное решение http://www.carbonfive.com/community/archiv...spring_mvc.html -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
||||
|
|||||
UnicornMirage |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 15.11.2005 Репутация: нет Всего: 1 |
MisterCleric, спасибо за ответ!
вобщем почему меня не устраивает маппинг с суффиксом - потому что хочу сделать friendly url, наподобие такого: вместо http://somehost.org/getUser.html?uid=12345 чтобы было http://somehost.org/user/12345 Поэтому придется использовать маппинг с префиксом. 1) в спринге 2.5 нет механизма REST Url, чтобы можно было написать в маппинге контроллеров: @RequestMapping(value= "/user/{userId}", этот механизм есть в spring 3.0, но он к сожалению пока еще не релиз. И его использовать нельзя. Поэтому пришлось самому написать аналог этого friendly url. 2) http://tuckey.org/urlrewrite/ - замечательный продукт! Но не могу использовать, потому что его нет в maven-репозиториях.. А наш проект имеет строгие ограничения на этот счет. Мы используем только то, что лежит в стандартных maven-репозиториях. Поэтому тащить в svn jar-библиотеки urlrewrite не имеет смысла. 3) насчет статических ресурсов js, css, images - то в будущем я бы их разнес на отдачу какому нибудь серверу hginx или apache. спасибо за интересную ссылку: http://www.carbonfive.com/community/archiv...spring_mvc.html Это сообщение отредактировал(а) UnicornMirage - 28.8.2009, 10:59 |
|||
|
||||
MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
Это как раз и есть REST Url и разруливается оно через UrlRewrite. Spring3 не смотрел, пока не выйдет релиз. Но что-то такое видел в примерах - конфигурируется аннотацией на уровне метода контроллера Добавлено через 1 минуту и 15 секунд Да, и темы по friendly url здесь уже подымались. Посмотри, мож чем поможет -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 8 Всего: 11 |
UnicornMirage, я наелся помню этих урлов. Средствами спринга 2.5 это не обойти, в третьем, как уже сказал
MisterCleric, уже есть вроде такое. Домой приду, могу выложить небольшой пример с urlRewrite. Надо? |
|||
|
||||
MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
Думаю, нормально будет, если прям сюда выложишь. Там достаточно всего лишь конфига этого urlRewrite и как Spring это разруливает -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
garbuz |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 8 Всего: 11 |
Добавляем в web.xml
Пишем urlrewrite.xml, в нем правила для урлов, что-то типа того
А сами ссылки уже формируешь так
Короче как-то так ![]() |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |