I am trying to run some simple interceptor on controller behind /index url. Usisng this piece of docs http://static.springsource.org/spring/docs/3.0.2.RELEASE/spring-framework-reference/html/mvc.html#mvc-handlermapping-interceptor. Here is my bean:
<bean id="handlerMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<value>
/index
</value>
</property>
<property name="interceptors">
<list>
<ref bean="myinter" />
</list>
</property>
</bean>
<bean id="myinter" class="my.classes.myinterceptor">
</bean>
but unfortunattelly I got:
SEVERE: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'handlerMapping' defined in ServletContext
resource [/WEB-INF/spring-servlet.xml]: Initialization of bean failed;
nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No
bean named '' is defined
Thanks in advice.
edit, here is my interceptor:
package my.classes;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class myinterceptor extends HandlerInterceptorAdapter{
public boolean preHandle(HttpServletResponse response){
try {
System.out.println("bla bla");
response.sendRedirect("http://google.com");
} catch (IOException e) {
e.printStackTrace();
}
return true;
}
}
The purpose of the SimpleUrlHandlerMapping is to map a url to some handler bean. You are failing to define that handler bean. Try mapping the url to some controller in your context by bean id like below.