Examples of MvcMetaInfo


Examples of com.firefly.mvc.web.support.MvcMetaInfo

    String afterIntercept = "a#" + invokeUri;
    Set<MvcMetaInfo> beforeSet = webContext.getBean(beforeIntercept);
    Set<MvcMetaInfo> afterSet = webContext.getBean(afterIntercept);

    log.debug("uri map [{}]", key);
    MvcMetaInfo mvcMetaInfo = webContext.getBean(key);
    if (mvcMetaInfo != null) {
      Object ret = null;
      Object beforeRet = null; // 前置拦截器的返回值
      MvcMetaInfo lastBefore = null; // 最后得到的前置拦截器
      Object afterRet = null; // 后置拦截器的返回值
      MvcMetaInfo lastAfter = null; // 最后得到的后置拦截器

      // 前置拦截栈调用
      if (beforeSet != null) {
        for (MvcMetaInfo before : beforeSet) {
          Object[] beforeP = getParams(request, response, before);
          beforeRet = before.invoke(beforeP);
          if (beforeRet != null) {
            lastBefore = before;
            break;
          }
        }
      }

      if (beforeRet == null) {
        // controller调用
        Object[] p = getParams(request, response, mvcMetaInfo);
        ret = mvcMetaInfo.invoke(p);

        // 后置拦截栈调用
        if (afterSet != null) {
          for (MvcMetaInfo after : afterSet) {
            Object[] afterP = getParams(request, response, after);
            afterRet = after.invoke(afterP);
            if (afterRet != null) {
              lastAfter = after;
              break;
            }
          }
        }
      }

      // 视图渲染
      try {
        if (afterRet != null) {
          lastAfter.getViewHandle().render(request, response,
              afterRet);
        } else if (beforeRet != null) {
          lastBefore.getViewHandle().render(request, response,
              beforeRet);
        } else {
View Full Code Here

Examples of com.firefly.mvc.web.support.MvcMetaInfo

        final String view = m.getAnnotation(RequestMapping.class)
            .view();
        String key = method + "@" + uri;

        // 构造请求uri对应的方法的元信息
        MvcMetaInfo mvcMetaInfo = new MvcMetaInfo(
            beanDefinition.getObject(), m, getViewHandle(view));
        map.put(key, mvcMetaInfo);
        uriList.add(key);
        log.info("register uri [{}]", key);
        if (key.charAt(key.length() - 1) == '/')
          key = key.substring(0, key.length() - 1);
        else
          key += "/";
        map.put(key, mvcMetaInfo);
        uriList.add(key);
        log.info("register uri [{}]", key);
      }
    }

    list = beanDefinition.getInterceptorMethods();
    if (list != null) {
      log.debug("interceptorMethods size [{}]", list.size());
      for (Method m : list) {
        m.setAccessible(true);
        List<String> l = getInterceptUri(
            beanDefinition.getUriPattern(), uriList);
        log.debug("interceptorUri size [{}]", l.size());
        for (String i : l) {
          String key = m.getName().charAt(0) + "#" + i;

          // 构造拦截器的元信息
          MvcMetaInfo mvcMetaInfo = new MvcMetaInfo(
              beanDefinition.getObject(), m,
              getViewHandle(beanDefinition.getView()));
          mvcMetaInfo.setInterceptOrder(beanDefinition.getOrder());
          Set<MvcMetaInfo> interceptorSet = (Set<MvcMetaInfo>) map
              .get(key);
          if (interceptorSet == null) {
            interceptorSet = new TreeSet<MvcMetaInfo>();
            interceptorSet.add(mvcMetaInfo);
View Full Code Here

Examples of com.firefly.mvc.web.support.MvcMetaInfo

        view = VerifyUtils.isNotEmpty(view) ? view : ConfigReader
            .getInstance().getConfig().getViewType();
        String key = method + "@" + uri;

        // 构造请求uri对应的方法的元信息
        MvcMetaInfo mvcMetaInfo = new MvcMetaInfo(
            beanDefinition.getObject(), m, getViewHandle(view));
        map.put(key, mvcMetaInfo);
        uriList.add(key);

        if (key.charAt(key.length() - 1) == '/') {
          key = key.substring(0, key.length() - 1);
          log.info("register uri [{}], view [{}]", key, view);
        } else {
          log.info("register uri [{}], view [{}]", key, view);
          key += "/";
        }
        map.put(key, mvcMetaInfo);
        uriList.add(key);
      }
    }

    list = beanDefinition.getInterceptorMethods();
    if (list != null) {
      log.debug("interceptorMethods size [{}]", list.size());
      for (Method m : list) {
        m.setAccessible(true);
        List<String> l = getInterceptUri(
            beanDefinition.getUriPattern(), uriList);
        log.debug("interceptorUri size [{}]", l.size());
        for (String i : l) {
          String key = m.getName().charAt(0) + "#" + i;

          // 构造拦截器的元信息
          MvcMetaInfo mvcMetaInfo = new MvcMetaInfo(
              beanDefinition.getObject(), m,
              getViewHandle(beanDefinition.getView()));
          mvcMetaInfo.setInterceptOrder(beanDefinition.getOrder());
          Set<MvcMetaInfo> interceptorSet = (Set<MvcMetaInfo>) map
              .get(key);
          if (interceptorSet == null) {
            interceptorSet = new TreeSet<MvcMetaInfo>();
            interceptorSet.add(mvcMetaInfo);
View Full Code Here

Examples of com.firefly.mvc.web.support.MvcMetaInfo

    String afterIntercept = "a#" + invokeUri;
    Set<MvcMetaInfo> beforeSet = webContext.getBean(beforeIntercept);
    Set<MvcMetaInfo> afterSet = webContext.getBean(afterIntercept);

    log.debug("uri map [{}]", key);
    MvcMetaInfo mvcMetaInfo = webContext.getBean(key);
    if (mvcMetaInfo != null) {
      Object ret = null;
      Object beforeRet = null; // 前置拦截器的返回值
      MvcMetaInfo lastBefore = null; // 最后得到的前置拦截器
      Object afterRet = null; // 后置拦截器的返回值
      MvcMetaInfo lastAfter = null; // 最后得到的后置拦截器

      // 前置拦截栈调用
      if (beforeSet != null) {
        for (MvcMetaInfo before : beforeSet) {
          Object[] beforeP = getParams(request, response, before,
              null);
          beforeRet = before.invoke(beforeP);
          if (beforeRet != null) {
            lastBefore = before;
            break;
          }
        }
      }

      if (beforeRet == null) {
        // controller调用
        Object[] p = getParams(request, response, mvcMetaInfo, null);
        ret = mvcMetaInfo.invoke(p);

        // 后置拦截栈调用
        if (afterSet != null) {
          for (MvcMetaInfo after : afterSet) {
            Object[] afterP = getParams(request, response, after,
                ret);
            afterRet = after.invoke(afterP);
            if (afterRet != null) {
              lastAfter = after;
              break;
            }
          }
        }
      }

      // 视图渲染
      try {
        if (afterRet != null) {
          lastAfter.getViewHandle().render(request, response,
              afterRet);
        } else if (beforeRet != null) {
          lastBefore.getViewHandle().render(request, response,
              beforeRet);
        } else {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.