본문 바로가기

개발/스프링

@PathVariable vs @RequestParam

면접 때 나온 질문이다. 

 

@PathVariable은 URI 경로부터 값을 추출하고, @RequestParam은 query string으로부터 값을 추출한다. 

 

@PathVariable은 URI path 값을 encode 되지 않은채 그대로 추출함. 

예)

http://localhost:8080/spring-mvc-basics/foos/ab+c
----
ID: ab+c

 

@RequestParam은 파리미터 값이 decode 되어 됨. 

예)

http://localhost:8080/spring-mvc-basics/foos?id=ab+c
----
ID: ab c

 

@PathVariable 및 @RequestParam 둘 다 Optional 기능이 있음. 

URI Path 혹은 query string 값을 required 할 수도 있고, 안 할 수도 있음. 

 

출처:

https://www.baeldung.com/spring-requestparam-vs-pathvariable