/ / Spring 3.1 HandlerInterceptor Не се нарича - java, пролет

Пролет 3.1 HandlerInterceptor Не се нарича - java, spring

Следвах документацията за HandlerInterceptors. Отбелязвайки, че в новата версия на Spring: "конфигурираният прехващач ще се прилага за всички заявки, обработени с анотирани контролни методи".

Следното е в xml конфигурационен файл: въведете описанието на изображението тук

Имам започване на анотиран контролер по следния начин:

въведете описанието на изображението тук

Когато искам URL, който изпълнява кода на контролера, кодът ми за прихващания не се нарича. Може ли някой да обясни защо?

Кодът за прихващания е:

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

public class DomainNameInterceptor extends HandlerInterceptorAdapter {
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler)
throws Exception {
System.out.println("Why is this not called?");
return true;
}
}

Използвах следната документация: Пролетна ядро ​​3.1.x Документация

Направих търсене на HandlerInterceptor и следвах примера, даден в документацията в включената връзка.

Отговори:

9 за отговор № 1

Ако сте конфигурирали вашия MVC контекст, използвайки <mvc:annotation-driven/>, тогава мисля, че handlerMapping е създал когадефинирането на beans на базата на това персонализирано пространство от имена пренебрегва определеното от handlerMapping. По-добър начин да регистрирате прехващачите си е да използвате <mvc:interceptors> subtag за дефиниране на прехващачи, по този начин ще се регистрира в правилния манипулатор на манипулатора:

<mvc:annotation-driven>
<mvc:interceptors>
<ref bean="interceptor"/>
</mvc:interceptors>
</mvc:annotation-driven>

8 за отговор № 2

Отговорът на Biju по-горе е правилен, освен през пролетта на 3.1.

<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/pathToIntercept/**" />
<bean class="com.foo.bar.Interceptor" />
</mvc:interceptor>
</mvc:interceptors>