ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 번외 ) grid적용하는 예제 이해하기
    웹프로그래밍 2022. 6. 27. 19:23
    728x90

    1. 먼저 객체가 생성이된다. 생성자

    생성자는 오버로딩 가능하다 그대신 매개변수와 타입이 다르게 끔  그래서 여기에는 생성자가 2개인샘!!

    1)  this(new ~) this는 생성자에서다른 생성자를 호출할때 사용한다. 이 안에 new GridTemplateViewResolver()값을 가지고 어디로갈지 판단

    ---만약에 this("aaa") 가 있고 public DelegatingViewResolver(String s) { } 이런 생성자가 있다면 얘가 호출되겟찌 무조건 this()가 밑에있는 다른 생성자로 가는것은 아님을 알아두자!!

    그래서 여기는 그리드를 new해줬으니까 그리드 객체가 들어가있음

     

    2) private ViewResolver[] resolvers; 이렇게 선언한 이유는 가변형 파라미터는 안에서 배열로 처리되기 때문이다.

    resolvers에는 grid객체가 들어가있으며 또 여기생성자에서 new InternalResourceViewResolver의 객체도 생성해서 

    this.defaultResolver안에다가 넣어준다.

    private ViewResolver defaultResolver; 이렇게 선언되어있기에 defaultResolver는 ViewResolver라는 부모형이기에 부모형을 사용하려면 자식으로 형변환이 필요하다 반대로 자식이 부모를 사용할때는 굳이 안해줘도 된다. 그래서 형변환 하여 사용을 하며 set해준다. 

     

    3) 

    여기서의 역할은 사실 없다..

    그냥 추상메소드를 받은것이기에 구현한거 뿐..

     

    2. 이제 생성자가 만들어졌으니 

    viewResolve로 주소를 가지고 이동

     

    3. 이동을 했으면 

     1)ViewResolver finded = findViewResolver(viewName);

     

     2) ViewResolver findedResolver =defaultResolver; 기본적으로 

    여기서 만들어진 findedResolver 에객체를 넣어두고 

    for문은 grid객체가 들어간것을 돌리면서 tmp안에는 grid객체가 들어가있으니까 객체.suppoerted하면 

    여기서 그리드이면 true리턴하여 if문을 타고 그리드 객체가 findedResolver들어가고  아니면 else라서 findedResolver에 그냥 기본객체가 들어간다. 그것을 리턴하면 

    각자의 객체 . viewResolve()

    ViewResolver finded = findViewResolver(viewName);
     finded.viewResolve(viewName, request, response);   => 이동한다

    그리드라면 그리드. viewResolve로 이동해서 이제 templete로 보내진다. 

    728x90

    '웹프로그래밍' 카테고리의 다른 글

    MyBatis, DBCP(DataBase Connection Pool)-0627(2)  (0) 2022.06.28
    view에대한 공부, modal -0627  (0) 2022.06.28
    tiles를 적용한 후 에러잡기  (0) 2022.06.25
    EL, JSTL 프레임워크 -0624  (0) 2022.06.24
    회원등록, DB -22.06.23  (0) 2022.06.23
Designed by Tistory.