728x90

- application.properties 에 ViewResolver 설정 추가
-
spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view.suffix=.jsp
-
- 스프링 부트는 InternalResourceViewResolver라는 뷰 리졸버를 자동으로 등록하는데, 이때 application.properties 에 등록한 spring.mvc.view.prefix , spring.mvc.view.suffix 설정 정보를 사용해서 등록한다.
- 스프링 부트가 자동 등록하는 뷰 리졸버(실제로는 더 많지만, 중요한 부분 위주로 설명하기 위해 일부 생략)
- BeanNameViewResolver : 빈 이름으로 뷰를 찾아서 반환한다. (예: 엑셀 파일 생성 기능에 사용)
- InternalResourceViewResolver : JSP를 처리할 수 있는 뷰를 반환한다.
- 스프링 부트가 자동 등록하는 뷰 리졸버(실제로는 더 많지만, 중요한 부분 위주로 설명하기 위해 일부 생략)
- 동작 과정
- 핸들러 어댑터 호출
- 핸들러 어댑터를 통해 new-form이라는 논리 뷰 이름을 획득한다.
- ViewResolver 호출
- new-form 이라는 뷰 이름으로 viewResolver를 순서대로 호출한다.
- BeanNameViewResolver는 new-form이라는 이름의 스프링 빈으로 등록된 뷰를 찾아야 하는데 없다.
- InternalResourceViewResolver 가 호출된다.
- InternalResourceViewResolver
- 이 뷰 리졸버는 InternalResourceView를 반환한다.
- 뷰 - InternalResourceView
- InternalResourceView는 JSP처럼 포워드 forward()를 호출해서 처리할 수 있는 경우에 사용한다.
- view.render()
- view.render()가 호출되고 InternalResourceView는 forward()를 사용해서 JSP를 실행한다.
- 핸들러 어댑터 호출
- 참고
- Thymeleaf 뷰 템플릿을 사용하면 ThymeleafViewResolver를 등록해야 한다. 최근에는 라이브러리만 추가하면 스프링 부트가 이런 작업도 모두 자동화해준다.
728x90
'스프링 MVC 1편 (백엔드 웹 개발 핵심 기술)' 카테고리의 다른 글
| Ch05. 스프링 MVC(구조 이해) - 스프링 MVC(컨트롤러 통합) (0) | 2022.03.05 |
|---|---|
| Ch05. 스프링 MVC(구조 이해) - 스프링 MVC(시작하기) (0) | 2022.03.05 |
| Ch05. 스프링 MVC(구조 이해) - 핸들러 매핑과 핸들러 어댑터 (0) | 2022.03.05 |
| Ch05. 스프링 MVC(구조 이해) - 스프링 MVC 전체 구조 (0) | 2022.03.05 |
| Ch04. MVC 프레임워크 만들기 - 유연한 컨트롤러 (v5) (0) | 2022.03.04 |