2013-08-28 4 views
3

Мой проект baded на Spring MVC, и я написал перехватчик перехватить запрос, я хочу, чтобы получить parametrts из запроса, следует мой код:Spring MVC перехватчик исключение

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 

В чем причина исключения?

ответ

1

Это просто означает, что handler не является экземпляром HandlerMethod, поэтому литье не работает. Проверьте перед литьем следующим образом:

if (handler instanceof HandlerMethod) { 
    HandlerMethod maControl = (HandlerMethod) handler; 
    Method pmrResolver = (Method) maControl.getMethod(); 
    String methodName = pmrResolver.getName(); 
    // ... 
} 
+0

Я использую перехватчик как привилегированный перехватчик. и я хочу перехватить весь запрос, поэтому, если «обработчик» не является экземпляром «HandlerMethod», как я могу справиться с этим случаем? и когда «обработчик» является экземпляром «DefaultServletHttpRequestHandler», вы можете мне помочь? – bright

Смежные вопросы