Я пытаюсь использовать перехватчики весной, мне нужно реализовать перехватчик на всех моих контроллерах, чтобы обрабатывать определенную логику, когда их вызывают.Перехватчики весной 2.5
web.xml:
<servlet>
<servlet-name>MyApp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyApp</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
applicationContext.xml:
<bean id="handlerMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref bean="warningInterceptor"/>
</list>
</property>
<property name="mappings">
<value>*.do</value>
</property>
</bean>
<bean id="warningInterceptor" class="security.WarningInterceptor">
<property name="activeApp" value="${myWarning}"/>
</bean>
Java класс: WarningInterceptor
public class WarningInterceptor extends HandlerInterceptorAdapter {
private int activeApp;
public int getActiveApp() { return activeApp; }
public void setActiveApp(int activeApp) {this.activeApp = activeApp;}
public boolean preHandle(
HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception {
if (getActiveApp() == 0) {
return true;
} else {
response.sendRedirect("/myWarning.do");
return false;
}
}
Когда я начинаю MyApp я всегда получаю эту ошибку:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'handlerMapping' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named '' is defined
Я не вижу ничего плохого в этом. попробуйте ли вы очистить и перестроить весь проект? – gigadot
Да, я думаю, что связано со значением «* .do» в сопоставлениях, но я не знаю, что произойдет :-( – Marta