/** * controller方法参数注入 * * @param request * @param response * @param mvcMetaInfo * @return */ @SuppressWarnings("unchecked") private Object[] getParams( HttpServletRequest request, HttpServletResponse response, MvcMetaInfo mvcMetaInfo, Object controllerReturn) { byte[] methodParam = mvcMetaInfo.getMethodParam(); ParamMetaInfo[] paramMetaInfos = mvcMetaInfo.getParamMetaInfos(); Object[] p = new Object[methodParam.length]; boolean firstString = true; for (int i = 0; i < p.length; i++) { switch (methodParam[i]) { case MethodParam.REQUEST: p[i] = request; break; case MethodParam.RESPONSE: p[i] = response; break; case MethodParam.HTTP_PARAM: // 请求参数封装到javabean Enumeration<String> enumeration = request.getParameterNames(); ParamMetaInfo paramMetaInfo = paramMetaInfos[i]; p[i] = paramMetaInfo.newParamInstance(); // 把http参数赋值给参数对象 while (enumeration.hasMoreElements()) { String httpParamName = enumeration.nextElement(); String paramValue = request.getParameter(httpParamName); paramMetaInfo.setParam(p[i], httpParamName, paramValue); } if (VerifyUtils.isNotEmpty(paramMetaInfo.getAttribute())) { request.setAttribute(paramMetaInfo.getAttribute(), p[i]); } break; case MethodParam.CONTROLLER_RETURN: p[i] = firstString ? (String) controllerReturn : null; firstString = false; break; } } return p; }