Предполагая, что вы используете согласованную схему именования для своих страниц, используйте это, например. если внешние URL-адреса страницы заканчиваются на .html
, укажите:
<mvc:mapping path="/**/*.html" />
Впрочем, иметь такие "расширения" не очень приятно - вы можете использовать схему вроде:
- GET из
/user/{id}
= возвращает объект пользователя для пользователя {id}, формат JSON
- POST в
/user/{id}
= обновляет объект пользователя из JSON-объект
- GET to
/user/page/{id}
= возвращает HTML-страницу для пользователя {id}
- и т. Д. И т. П.
Затем вы можете использовать удобочитаемое семантическое отображение, например:
<mvc:mapping path="/**/page/**" />
, которая будет работать на любой «глубине» структуры URL.
Редактировать: ОК, так что кажется, что использование стиля бобов mvc: interceptors не даст вам выразительности, которую вам нужно указать exclusion по шаблону, а не по включению.
Из того, что я могу разглядеть в этом блоге , использование более многословного HandlerMapping
подхода позволит вам инвертировать логику сопоставления - вы можете указать, что не чтобы соответствовать, чтобы получить то, что вам нужно:
<bean id="nonStaticNonDataMapper" class="org.springplugins.web.IgnoreSelectedAnnotationHandlerMapping">
<property name="order">
<value>0</value>
</property>
<property name="urls">
<list>
<value>/statics/**</value>
<value>/data/**</value>
</list>
</property>
<property name="interceptors">
<list>
<bean class="com.company.website.servlet.PageHandlerInterceptor" />
</list>
</property>
(Извиняюсь за форматирование приведенного выше фрагмента, Markdown считает, что /**
- это комментарий: -)