MVC: управляемый аннотациями Spring mvc 3 и URL-фильтр Tuckey

Я использовал URL Tuckey для перезаписи URL. Вот как это выглядит:

правило от / от
до /pf/welcome to
(изменен формат для входа в этот форум, используются обычные теги xml) правило

и вот как я настроил свой менеджер сущностей в web.xml:

OpenEntityManagerInViewFilter /*‹/url-шаблон> --> /pf/* ВПЕРЕД

I would like to take advantage of Spring 3 validations. In my presentation-context file I added this:

Как только я это делаю, я получаю 404 ошибки. Отображение отключено.

12/сен/10 21:57:46 DEBUG [http-8080-1] DEBUG (org.springframework.web.servlet.Di spatcherServlet.getLastModified(DispatcherServlet.java:842)) — DispatcherServlet с именем «диспетчер», определяющим Last- Изменено значение для [/PublicFountainWAR-0.0.1-SNAPSHOT/pf/welcome] 12/Sep/10 21:57:46 DEBUG [http-8080-1] DEBUG (org.springframework.web.servlet.Di spatcherServlet.getLastModified( DispatcherServlet.java:850)) - Обработчик не найден в getLastModified 12/Sep/10 21:57:46 DEBUG [http-8080-1] DEBUG (org.springframework.web.servlet.Di spatc herServlet.doService(DispatcherServlet.java:690)) — DispatcherServlet с именем «диспетчер», обрабатывающий запрос GET для [/PublicFountainWAR-0.0.1-SNAPSHOT/pf/welcome] 12/Sep/10 21:57:46 WARN [http- 8080-1] WARN (org.springframework.web.servlet.Dis patcherServlet.noHandlerFound(DispatcherServlet.java:962)) — Не найдено сопоставление для HTTP-запроса с URI [/PublicFountainWAR-0.0.1-SNAPSHOT/pf /welcome] в Dispat cherServlet с именем 'dispa 12 сентября 2010 г. 21:57:46 DEBUG [http-8080-1] DEBUG (org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:677)) — успешно завершено request 12/Sep/10 21:57:46 DEBUG [http-8080-1] DEBUG (org.springframework.orm.jpa.support t.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.j ava:120)) - Закрытие JPA EntityManager в OpenEntityManagerInViewFilter 12 сентября 2010 г. 21:57:46 DEBUG [http-8080-1] DEBUG (org.springframework.orm.jpa.Entity ManagerFactoryUtils.closeEntityManager(EntityManagerFactoryUtils.java:328)) — закрытие JPA EntityManager

мои контроллеры сопоставлены с ключевыми словами без «pf». например /добро пожаловать НЕ /pf/добро пожаловать

«pf» был просто там, чтобы перенаправить его на своего рода виртуальный путь, известный только диспетчерскому сервлету для обработки... все URL-адреса независимы.

Есть ли способ использовать Tuckey и ???

Обзор:

ребята, любые подсказки помогут... просто хочу добавить mvc:annotation-driven

к моему уже существующему весеннему веб-приложению mvc 3.0 с использованием фильтра URL-адресов Tuckey......

любая помощь будет принята с благодарностью!


person logixplayer    schedule 15.09.2010    source источник


Ответы (1)


Я предполагаю, что вы используете Tuckey, потому что у вас есть методы контроллера Spring, сопоставленные с /pf/*, и вы хотите избавиться от этой части URL-адреса для пользователя. Вы можете сделать это без Таки.

Добавьте <mvc:default-servlet-handler /> (см. Spring Reference) к вашей конфигурации Spring и убедитесь, что ваш DispatcherServlet сопоставлен с /, а не /pf/* в web.xml.

<mvc:default-servlet-handler /> был добавлен в Spring 3.0.4, но не был добавлен в схему spring-mvc-3.0.xsd, поэтому он будет отображаться как ошибка в Eclipse. Это работает, несмотря на очевидную ошибку, и проблема решается SPR-7545. .

person earldouglas    schedule 15.09.2010
comment
привет, спасибо за ответ, да, я не хотел /pf в своих URL-адресах, я просто хотел, чтобы мои контроллеры не знали о какой-либо базовой реализации и просто заботились о сопоставлениях, таких как /welcome ИЛИ /register и т. д. Еще одна причина, по которой я пошел с Tuckey, была Я хотел использовать спокойные URL-адреса, такие как /welcome/user/id/{userID} ИЛИ /welcome/hello/register/now/heyyyyy, поэтому я заканчивал тем, что отображал каждый отдельный URL-адрес в web.xml, и он становился огромным и некрасиво..отсюда и таки...так ты предполагаешь что он работает так же как у меня сейчас только без таки? Я тоже попробую...спасибо!!!! - person logixplayer; 16.09.2010
comment
привет, после того, как я попробовал эту новую технику, у меня возникла проблема с отображением. Не найдено сопоставление для HTTP-запроса с URI [/myProjectWebApp/welcome]. Мне требуется только /welcome .... есть идеи? - person logixplayer; 16.09.2010