2016-01-23 1 views
2

Я знаю, что мы можем сопоставить разные URL-адреса для разных перехватчиков, или мы можем сопоставить множественный URL-адрес одному перехватчику. Мне просто интересно узнать, есть ли у нас опция исключения. например, если у меня есть 50 URL-адресов в приложении и за исключением 1 сопоставления, я хочу вызвать перехватчик для всех, вместо того, чтобы писать конфигурацию для 49-отображения, могу ли я просто указать *, а один исключить на 50-й URL-адрес?Исключить запрос на загрузку весныInterceptor по шаблону пути

ответ

6

HandlerInterceptor s может применяться или исключаться (множественными) конкретными URL-адресами или шаблонами url.

См. MVC Interceptor Configuration.

Вот примеры из документации

@Configuration 
@EnableWebMvc 
public class WebConfig extends WebMvcConfigurerAdapter { 

    @Override 
    public void addInterceptors(InterceptorRegistry registry) { 
     registry.addInterceptor(new LocaleInterceptor()); 
     registry.addInterceptor(new ThemeInterceptor()).addPathPatterns("/**").excludePathPatterns("/admin/**"); 

     // multiple urls (same is possible for `exludePathPatterns`) 
     registry.addInterceptor(new SecurityInterceptor()).addPathPatterns("/secure/*", "/admin/**", "/profile/**"); 
    } 
} 

или с помощью XML-конфигурации

<mvc:interceptors> 
    <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"/> 
    <mvc:interceptor> 
     <mvc:mapping path="/**"/> 
     <mvc:exclude-mapping path="/admin/**"/> 
     <bean class="org.springframework.web.servlet.theme.ThemeChangeInterceptor"/> 
    </mvc:interceptor> 
    <mvc:interceptor> 
     <!-- intercept multiple urls --> 
     <mvc:mapping path="/secure/*"/> 
     <mvc:mapping path="/admin/**"/> 
     <mvc:mapping path="/profile/**"/> 
     <bean class="org.example.SecurityInterceptor"/> 
    </mvc:interceptor> 
</mvc:interceptors> 
+0

Thankyou очень много. –

+0

Почему каждый всегда публикует только пример? У меня есть несколько сопоставлений, которые мне нужно исключить, и этот пример ничего не делает для меня. – Encryption

+0

Хорошая точка. Вы даже посмотрели на подпись схемы/метода? В любом случае. Обновлен ответ. – fateddy

Смежные вопросы