본문 바로가기
Develop/Spring+JPA

[스프링 MVC] 뷰 리졸버

by 연로그 2021. 5. 26.
반응형

지난 번에 만들었던 OldController를 수정해서 뷰 리졸버의 작동을 살펴보자.

( 프로젝트 전체: https://github.com/yeon-06/inflearnSpring/tree/master/mvc1 )

 

OldController

@Component("/springmvc/old-controller")
public class OldController implements Controller{
	@Override
	public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse res) throws Exception {
		System.out.println("OldController.handleRequest");
		return new ModelAndView("new-form");
	}
}
  • jsp 파일의 논리 이름을 반환하도록 수정
  • 권장하지는 않지만 return new ModelAndView("/WEB-INF/views/new-form.jsp");로 변경해도 동작은 한다.

 

application.properties

spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
  • Spring boot는 InternalResourceViewResolver라는 View resolver를 자동으로 등록
  • 위 설정 정보를 사용

 

동작 과정

  1. 핸들러 어댑터 호출               // "new-form"이라는 논리 뷰 이름 획득
  2. ViewResolver 호출                // InternalResourceViewResolver 호출
  3. InternalResourceViewResolver // return InternalResourceView
  4. InternalResourceView            // JSP처럼 forward()를 호출해 처리할 수 있는 경우에 사용
  5. view.render()                       // view.render() 호출 -> InternalResourceView는 forward() 사용해 JSP 실행

+ InternalResourceViewResolver는 JSTL 라이브러리가 있으면 JstlView를 반환한다. (기능 추가됨)

+ forward()를 이용하는건 JSP뿐. 다른 뷰들은 바로 렌더링 가능.

 


본 게시글은 김영한 님의 '스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 강의를 구매 후 정리하기 위한 포스팅입니다.

내용을 임의로 추가, 수정, 삭제한 부분이 많으며 정확한 이해를 위해서 강의를 구매하시는 것을 추천 드립니다.

 

inf.run/B756

 

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원

www.inflearn.com

 

반응형