private void injectHelper(ModelAndView modelAndView, Object object)
object来源于拦截器参数object,其为http请求的handler或action方法。
判断modelAndView非空且modelAndView.getModel()非空且object类型为HandlerMethod才继续进行
HandlerMethod handlerMethod = (HandlerMethod) object;<br><br> String simpleClassName = handlerMethod.getBeanType().getSimpleName();<br><br> String controllerName = StringUtil.convertFirstChar2LowerCase(simpleClassName.replace("Controller", ""));<br><br> String actionName = handlerMethod.getMethod().getName();<br><br><br><br> String helperBeanId = controllerName + "Helper";//indexHelper<br><br><br><br> modelAndView.getModel().put("controller", controllerName);<br><br> modelAndView.getModel().put("action", actionName);
if (modelAndView.getViewName().startsWith("redirect:")) {<br><br> modelAndView.getModel().clear();<br><br> }
BaseHelper helper = null;<br><br> try {<br><br> helper = SpringApplicationContext.getBean(helperBeanId);<br><br> } catch (Exception e) {<br><br> //防御性容错<br><br> helper = SpringApplicationContext.getBean("baseSiteHelper");<br><br> }<br><br><br><br> if (null != helper) {<br><br> modelAndView.getModel().put("helper", helper);<br><br> }