胡车儿
2017-08-19 17:53
如访问http://localhost:8080/courses/testEncoding在拦截器中可以获取到testEncoding方法
ps:可以使用HandlerMethod获取到该方法,但是原本正常运行的程序会报错:
java.lang.ClassCastException: org.springframework.web.servlet.resource.ResourceHttpRequestHandler cannot be cast to org.springframework.web.method.HandlerMethod
页面可以显示,但是并无CSS样式。。删除HandlerMethod语句就可以正常运行
@Override
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
System.out.println("执行preHandle");
HandlerMethod hm = (HandlerMethod) arg2;
System.out.println("当前执行的对象是"+hm.getMethod());
return true;
}
if (o instanceof HandlerMethod)
强转之前加个判断
自问自答。。
决定不钻牛角尖了,直接使用request.getRequestURI()获取到了。。。
附上代码:
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse arg1, Object arg2) throws Exception {
System.out.println("执行preHandle");
System.out.println("getRequestURI"+request.getRequestURI());
return true;
}
以及SpringMVC配置文件中的拦截器配置
<!-- 拦截来自所有的请求 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/**/fonts/*"/>
<mvc:exclude-mapping path="/**/*.css"/>
<mvc:exclude-mapping path="/**/*.js"/>
<mvc:exclude-mapping path="/**/*.png"/>
<mvc:exclude-mapping path="/**/*.gif"/>
<mvc:exclude-mapping path="/**/*.jpg"/>
<mvc:exclude-mapping path="/**/*.jpeg"/>
<bean class="com.springmvc.demo.interceptor.TestInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
Spring MVC拦截器
73575 学习 · 59 问题
相似问题