3

私のプロジェクトは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

例外の原因は何ですか?

4

1 に答える 1

3

handlerのインスタンスではないことを意味するだけなHandlerMethodので、キャストは失敗します。次のようにキャストする前に確認してください。

if (handler instanceof HandlerMethod) {
    HandlerMethod maControl = (HandlerMethod) handler;  
    Method pmrResolver = (Method) maControl.getMethod();  
    String methodName = pmrResolver.getName(); 
    // ...
}
于 2013-08-28T06:59:29.813 に答える