handler 类型在转换异常

来源:互联网 发布:在淘宝上怎么退货退款 编辑:程序博客网 时间:2024/05/16 12:15
@Override    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,     ModelAndView modelAndView) throws Exception {        HandlerMethod hMethod = (HandlerMethod)handler;        //参与成员发送消息        RequiredSendMessage requiredInterceptor = AnnotationUtils.findAnnotation(hMethod.getMethod(), RequiredSendMessage.class);          if(requiredInterceptor!=null){              List<OaMessage> messageList = (List) request.getAttribute("messageList");            if(messageList!=null&&messageList.size()>0){                int len = messageList.size();                for(int i=0;i<len;i++){                    OaMessage omessage = messageList.get(i);                    oaMessageService.sendProjectMessage(omessage);                }            }        }      }

这样会抛类型装换异常的
你的请求里面还带有其他的请求的时候,而且不是你配置的拦截的规则,那么它转换类型的时候就报错了。我这边是页面请求里面还有js的请求,所以controller的方法请求通过了,js的拦截到的时候,你的handler 其实不是你配置的那个,所以就出现这个问题了

解决办法:

@Override    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,             ModelAndView modelAndView) throws Exception {//handler=default//异常        if (!(handler instanceof HandlerMethod)) {            return;        }         HandlerMethod hMethod = (HandlerMethod)handler;        //参与成员发送消息        RequiredSendMessage requiredInterceptor = AnnotationUtils.findAnnotation(hMethod.getMethod(), RequiredSendMessage.class);          if(requiredInterceptor!=null){              List<OaMessage> messageList = (List) request.getAttribute("messageList");            if(messageList!=null&&messageList.size()>0){                int len = messageList.size();                for(int i=0;i<len;i++){                    OaMessage omessage = messageList.get(i);                    oaMessageService.sendProjectMessage(omessage);                }            }        }      }
0 0
原创粉丝点击