Spring MVC: как избежать расширения файла в URL - PullRequest
2 голосов
/ 14 марта 2012

Я посмотрел на этот пост: Spring MVC; избегать расширения файла в URL?

Это не работает .... когда я использую

<servlet-mapping>
    <servlet-name>Spring-MVC-Dispatcher-Servlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

Я получаю предупреждение

WARNING: No mapping found for HTTP request with URI [/CMT/WEB-INF/jsp/content/edit.jsp] in DispatcherServlet with name 'Spring-MVC-Dispatcher-Servlet'
WARNING: No mapping found for HTTP request with URI [/CMT/WEB-INF/jsp/content/edit.jsp] in DispatcherServlet with name 'Spring-MVC-Dispatcher-Servlet'

В моих настройках по умолчанию используется *.htm и URL http://localhost:8080/CMT/content/edit.htm, но я бы хотел использовать http://localhost:8080/CMT/content/edit

Мне также все еще нужно иметь возможность загружать ресурсы, такие как файлы js / css, расположенные в CMT/js, CMT/css и CMT/lib

Ответы [ 2 ]

0 голосов
/ 15 марта 2012

Правильно ли вы сопоставляете свои URL-адреса для того, чтобы поймать edit.htm и edit?Попробуйте (предполагая, что CMT - ваш contextPath):

@RequestMapping(value = "/content/edit*")

Чтобы ресурсы работали, вам нужно указать <mvc:resources .../> в вашем весеннем конфиге.См. Spring doco здесь .

EDIT: Spring предоставляет компонент DefaultAnnotationHandlerMapping, который обычно перехватывает возможные расширения, такие как .html, .xml и т. Д. Приложение, над которым я работаю, имеет следующееотключается через:

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
    <property name="useDefaultSuffixPattern" value="false"/>
</bean>

Так что вам не нужно беспокоиться о расширении в обычном режиме.

0 голосов
/ 15 марта 2012

Включить компонент каталога в путь.(Возможно, вы не хотите, чтобы сопоставление соответствовало всем, включая внутренние запросы.)

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