Spring Boot에서는 WEB-INF, META-INF 등의 기존 폴더들을 초기 생성하지 않는다. 따라서 필요한 경우 수동으로 생성해야 한다. JSP의 경우 사용자의 직접 접근을 차단하고 컨트롤러와 연결된 경우만 접근이 가능하도록 WEB-INF 폴더 내부에 보관하는 것이 일반적이다.
Spring Legacy의 기본 JSP 경로와 동일한 위치에 JSP를 보관할 수 있는 폴더를 생성한다.
@ResponseBody를 사용하지 않으면 반환되는 값이 View의 경로로 처리된다. 따라서 welcome 메소드 실행 후 welcome.jsp로 이어진다. 이를 포워드(Forward)라고 한다. 내부적으로는 DispatcherServlet에서 처리해주며 구조는 다음과 같다.
설정이 잘 되었다면 위와 같이 연결된 JSP 화면이 나오며, 오타 등 코드에 문제가 발생한 경우 다음과 같이 404 Error 화면이 나온다.
View Resolver 설정
JSP를 /WEB-INF/views 폴더에 계속 생성할 예정이므로 앞으로 생성될 컨트롤러의 반환 주소는 반드시 /WEB-INF/views/???.jsp 형태가 된다. 반복적이고 비효율적인 작업을 피하기 위해 앞부분의 접두사 /WEB-INF/views/와 뒷부분의 접미사 .jsp를 자동 입력되도록 설정할 수 있다.
설정하는 방법은 여러 가지가 있으며, application.properties에 설정하는 방법으로 진행한다.
/ 혹은 . 등을 누락하면 오류가 발생하므로 정확하게 작성해야 한다.
위와 같이 설정을 하고 나면 Controller에서 반환하는 주소에 자동으로 접두사(prefix)와 접미사(suffix)가 추가되므로 주소를 변경해야 한다.