SpringBoot

[Spring Boot] JSP를 통해 Controller의 페이지 요청 시 공백 메서드 view name inference 동작에 대해 알아보기

joheamin 2025. 4. 21. 14:48

 

Controller의 공백메서드?

 

 

public class Controller {
   
    @GetMapping("/list")
    public void listPage(){};
}

👉 요청만 있으며 내용이 없는 빈 메서드

 

 

 

 

❓ 해당 매핑으로 요청하게 되면 어떻게 될까

◾ 매핑 요청 태그 
<a href="/list">리스트</a>​

 

◾ 결과
👉 url이 /list 경로로 이동 되는것을 확인

 

 

 

🤔 아무런 반환 값이 없는데 왜 페이지가 이어질까?

 

스프링 부트에는 JSP를 View로 활용하기 위해 JSP파일을 찾아 렌더링 할수 있도록 돕는 설정이 되어있다.

spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

 

Controller에 요청이 들어갈 경우 

해당 요청에 메서드가 실행되어 return된 값이 위 설정 경로에 들어가 페이지가 이어지는 것이다.

 

📌 WEB-INF/views/list.jsp 👉 최종적인 url 주소

 

 

🔥 공백 메서드가 동작하는 원리

Spring MVC에서는 컨트롤러 메서드에서 void를 반환할 경우
요청된 URL을 기준으로 뷰 이름을 추론한다.

이러한 동작을 view name inference 이라고 한다.

따라서
public class Controller {
   
    @GetMapping("/list")
    public void listPage(){};
}​


👉 요청된 URL 메서드가 void 이기때문에 해당 URL인  /list 가 반환된다.



주의할 점
      반드시 View 파일 경로와 URL의 경로 이름이 일치해야한다.

 

 

 

 

🤔 이런 방법을 쓰는 경우와 장점?

해당 코드의 장점은 간결하다는 점이다.
주로 화면 전환과 요청한 URL의 페이지를 호출할 때 간편하게 불러내기 위해 사용된다.