• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

viewResolve 실행되는 위치가 render() 안에 있는게 맞나요?

23.02.28 23:18 작성 조회수 336

1

PDF를 보면서 복습을 하는데

1. 핸들러어댑터호출

핸들러어댑터를 통해 new-form 이라는 논리뷰 이름을 획득한다.

2. ViewResolver 호출

new-form 이라는뷰 이름으로 viewResolver를 순서대로호출한다.

BeanNameViewResolver 는 new-form 이라는 이름의스프링 빈으로등록된 뷰를찾아야하는데 없다.

InternalResourceViewResolver 가 호출된다.

3. InternalResourceViewResolver

이뷰 리졸버는 InternalResourceView 를반환한다.

4. 뷰 - InternalResourceView

InternalResourceView 는 JSP처럼포워드 forward() 를호출해서 처리할수 있는경우에 사용한다.

5. view.render()

view.render() 가호출되고 InternalResourceView 는 forward() 를사용해서 JSP를실행한다.

그런데 코드를 찾아보니까

render()가 실행되면서

resolveViewName()로 viewResolver를 순회하던데

이때 InternalResourceViewResolver가 호출되는게 맞나요 ?

답변 1

답변을 작성해보세요.

1

안녕하세요. yousd179님

뒤에 이야기하시는 부분은 질문이 잘 이해가 되지 않습니다. 어떤 코드를 찾아보았고, 어떤 클래스의 어떤 코드가 호출되는지 소스코드와 함께 자세히 풀어서 다시 설명해주시겠어요?

참고로 SpringMVC 구조 그림에 있는 것 처럼 viewResolver를 통해서 뷰를 반환하고, 해당 뷰의 render() 코드가 호출됩니다. 그래서 앞부분에서 이야기하신 부분이 맞습니다.

감사합니다.