Java SpringMVC拦截器异常
我的项目是在spring mvc上完成的,我编写了一个拦截器来拦截请求,我想从请求中获取参数,下面是我的代码:Java SpringMVC拦截器异常,java,spring-mvc,interceptor,Java,Spring Mvc,Interceptor,我的项目是在spring mvc上完成的,我编写了一个拦截器来拦截请求,我想从请求中获取参数,下面是我的代码: public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HandlerMethod maControl = (HandlerMethod) handler; Method pmrResol
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HandlerMethod maControl = (HandlerMethod) handler;
Method pmrResolver = (Method) maControl.getMethod();
String methodName = pmrResolver.getName();
....
}
但现在它抛出了一个异常:
java.lang.ClassCastException: org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler cannot be cast to org.springframework.web.method.HandlerMethod
异常的原因是什么?它只是意味着
处理程序
不是HandlerMethod
的实例,因此强制转换失败。铸造前检查如下:
if(handler方法的处理程序实例){
HandlerMethod MacControl=(HandlerMethod)处理程序;
方法pmrResolver=(方法)maControl.getMethod();
String methodName=pmrResolver.getName();
// ...
}
我将拦截器用作特权拦截器。我想拦截所有请求,所以如果“handler”不是“HandlerMethod”的实例,我该如何处理这种情况?当“处理程序”是“DefaultServletHttpRequestHandler”的实例时,您能帮助我吗?您是如何解决这个问题的?在我的项目中看到同样的问题