컨트롤러에서 URL에 파라미터를 같이 전달할 때 변수를 넣는 방법 두 가지

  1. URL 변수(@PathVariable) : value
  2. Query String(@RequestParam) : name&value

 

// 기본 값 : id = a
// 기본 값 : name = hong

// URL : http://localhost:8080

-------------------------------------------------------------

//@RequestParam

@GetMapping("/")
public String user(@RequestParam Stirng id, Model model) {
  //...
}

-> http://localhost:8080?id=a
// URL + ? + name=value 형태로 작성된다.

-------------------------------------------------------------

//@PathVariable

@GetMapping("/{Id}")
public String user(@PathVariable Stirng id, Model model) {
  //...
}

-> http://localhost:8080/a
// URL/value 형태로 작성된다.

-------------------------------------------------------------

//@RequestParam 여러 개 사용

@GetMapping("/")
public String user(@RequestParam Stirng id, 
                   @RequestParam Stirng name, Model model) {
  //...
}

-> http://localhost:8080?id=a&name=hong
// URL + ? + name=value&name=value 형태로 작성된다.

-------------------------------------------------------------

//@PathVariable을 여러 개 사용

@GetMapping("/{Id}/{name}")
public String user(@PathVariable Stirng id, 
                   @PathVariable String name, Model model) {
  //...
}

-> http://localhost:8080/a/hong
// URL/value/value 형태로 작성된다.

 

@RequestParam과 @PathVariable 모두 변수명과 이름이 같으면 생략할 수 있다.

  • @RequestParam("id") String id-> @RequestParam id
  • @PathVariable("id") String id-> @PathVariable id

@RequestParam과 @PathVariable 모두 ("[ URL에 표현할 변수명을 작성 ]")