두 어노테이션 모두 uri를 통해 값을 파라미터로 받아오는 역할을 한다. 즉, http의 비연결성을 극복하고 데이터를 받아오기 위해 사용한다.
1번의 방식이 PathVariable, 2번의 방식이 RequestParam이다.
우선 데이터의 수에 따라 달라지는 것을 확인할 수 있다. 즉, 데이터가 1개가 넘어가면 RequestParam의 방식을 선택해야한다. 또한, 보안이 필요한 회원가입등의 작업을 할때도 RequestParam의 방식이 필요하다.
@GetMapping("/mysite/id/{id}")
public String getMysiteById(@PathVariable("id") String item) {
return "mysite";
}
해당 방식을 통해 {id}의 값을 받아 올 수 있다. 받아온 값을 통해 해당 내용을 반환하는 내용을 작성 할 수 있다.
@GetMapping("/mysite")
// @PostMapping("/mysite")
public String getMysite(@RequestParam String id, @RequestParam int page) {
return "mysite";
}
@GetMapping("/mysite")
// @PostMapping("/mysite")
public String getMysite(@RequestParam Map<String, String> params) {
String id = params.get("id");
String page = params.get("page");
return "mysite";
}
@GetMapping("/mysite/{id}")
public String exampleMethod(@PathVariable("id") int id, @RequestParam("page") int page) {
return "mysite";
}
해당 방식으로 사용하는 경우가 많다.
@PathVariable과 @RequestParam는 http의 비연결성을 극복하고 uri로 부터 매개변수를 받아오는 방식이다. 해당 방식을 이용하여 회원가입, 데이터 조회등의 많은 일을 수행할 수 있다.
PathVariable도 여러 값 사용 가능합니다. Map<String, String>으로 받는것도 가능합니다
여러 블로그에서 잘못된 정보를 알려주고 있는 것 같습니다
https://www.baeldung.com/spring-pathvariable