4 votes

Mappage de l'intercepteur Spring MVC pour l'application web Root

J'ai un Interceptor configuré dans mon contexte d'application que je veux mapper à la racine de l'application web ("/").

<mvc:interceptors>
    <bean class="com.example.SslInterceptor" />
    <mvc:interceptor>
        <mvc:mapping path="/" />
        <mvc:mapping path="/login" />
        <bean class="com.example.SslInterceptor" />
    </mvc:interceptor>
</mvc:interceptors>

Mais alors que l'intercepteur est appelé pour "/login", il ne l'est pas pour "/". Merci de m'aider.

3voto

LUO-Bert Points 31

Veuillez modifier la configuration des intercepteurs dans le fichier xml de configuration des servlets comme suit :

<mvc:annotation-driven/>
<mvc:default-servlet-handler/>

<mvc:interceptors>
  <mvc:interceptor>
    <mvc:mapping path="/**"/>
    <bean class="de.scrappy.web.TestInterceptor"/>
  </mvc:interceptor>
</mvc:interceptors>

0voto

Robin Points 2747

Voulez-vous vraiment mapper le chemin de la racine seulement ou vouliez-vous dire '/*' ? Quoi qu'il en soit, la configuration suivante fonctionne pour moi avec Spring 3.1.1, le DispatcherServlet est mappé à Root ('/') dans web.xml :

<mvc:annotation-driven/>
<mvc:default-servlet-handler/>

<mvc:interceptors>
  <mvc:interceptor>
    <mvc:mapping path="/"/>
    <bean class="de.scrappy.web.TestInterceptor"/>
  </mvc:interceptor>
</mvc:interceptors>

Quelle version de Spring utilisez-vous et comment le DispatcherServlet de Spring est-il mappé ? Et notez que TestInterceptor met en œuvre HandlerInterceptor Je ne sais pas si WebRequestInterceptors sont traitées différemment.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X