Я делаю свои первые шаги в Spring MVC и, возможно, мне чего-то не хватает, так как для меня это не имеет смысла:
Я начал с mvn-basic Весенний образец, и получил его для запуска.Затем я хотел посмотреть, смогу ли я заставить его работать на подпуть, чтобы я мог использовать его вместе с унаследованным кодом, который у меня есть.Я внес следующие изменения:
В servlet-context.xml:
- <mvc:view-controller path="/" view-name="welcome"/>
+ <mvc:view-controller path="/web/" view-name="welcome"/>
В AccountController.java:
-@RequestMapping(value="/account")
+@RequestMapping(value="/web/account")
В web.xml:
- <url-pattern>/</url-pattern>
+ <url-pattern>/web/*</url-pattern>
Я также увеличил логирование до DEBUG.Я перестроил и попытался запустить, но попытка доступа к http://localhost:8080/web/account привела к 404, и " Не найдено сопоставление " в журнале, хотя ранее в журнале я вижу " MappedПуть URL [/ web / account] к обработчику accountController".
Я обнаружил, что если я отменяю изменения в файле web.xml, все работает, но тогда DispatcherServlet принимает на себя все запросы.
Итак, у меня два вопроса:
- Что я делаю не так?Как я могу ограничить DispatcherServlet подразделом сайта?
- Как он вообще работает?Демонстрационная версия, кажется, только отправляет запросы на "/" в DispatcherServlet, так почему же "/ account" также работает?
Я использую Spring 3.0.5.RELEASE
ОБНОВЛЕНИЕ : Решение состоит в том, чтобы оставить запрос на сопоставление, как было, спасибо @axtavt.В противном случае URL становится http://localhost:8080/web/web/account (обратите внимание на дубликат /web
).Я все же хотел бы получить ответ на свой второй вопрос.