Package com.cawring.simple.route

Examples of com.cawring.simple.route.RouteVO


      String method = req.getMethod();
      String url    = req.getRequestURI();
     
      /* routes 정보를 가지고 온다. */
      Routes routes = Routes.getInstance();
      RouteVO vo    = routes.get(method, url);
     
      /* 해당 컨트롤러 접근 */
      Class<?> controller = Class.forName(vo.getController());
      Object instance = controller.newInstance();
     
      /* 컨트롤러 구조 */
      List<Class<?>> clazzes = new ArrayList<Class<?>>();
      clazzes.add(instance.getClass());          /* controller */
      clazzes.add(instance.getClass().getSuperclass())/* extend */
     
      /* request, response 인스턴스변수 호출 */
      Field requestField  = null/* request */
      Field responseField = null; /* response */
     
      /* 클래스 파일을 검사한다. */
      for(Class<?> clazz : clazzes)
      {
        /* 클래스에 인스턴스 변수를 모두 담는다. */
        Field[] fields = clazz.getDeclaredFields();
       
        /* 인스턴스변수를 검사한다. */
        for(Field field : fields)
        {
          /* 응답, 전송 필드를 찾는다. */
          if("request".equals(field.getName())) requestField = field;
          if("response".equals(field.getName())) responseField = field;
         
          /* 필드 정보의 값을 있는 경우 */
          if(requestField != null && responseField != null)
          {
            /* 해당 필드의 setter를 찾아 메소드 선언을 한다. */
            Method setRequest  = clazz.getDeclaredMethod("setRequest", HttpServletRequest.class);
            Method setResponse = clazz.getDeclaredMethod("setResponse", HttpServletResponse.class);
           
            /* 수정 권한을 얻는다. */
            setRequest.setAccessible(true);
            setResponse.setAccessible(true);
           
            /* 값을 넣는다. invoke */
            setRequest.invoke(instance,req);
            setResponse.invoke(instance,resp);
           
            /* 더이상 찾을 필요 없음 */
            break;
          }
        }
      }
     
      /* 메소드 실행 */
      Method def = instance.getClass().getMethod(vo.getDef());
      def.invoke(instance);
     
    } catch (Exception e) {
      log.severe("routes 정보에 문제가 발생했습니다.");
    }
View Full Code Here

TOP

Related Classes of com.cawring.simple.route.RouteVO

Copyright © 2018 www.massapicom. 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.