백/Spring, Spring Boot

[Spring] 경로 변수(path variables) @PathVariable, @RequestParam

연지양갱 2023. 7. 4. 17:48
728x90
반응형
SMALL

교재 : 스프링 코딩 공작소

https://thebook.io/080266/0182/

 

스프링 코딩 공작소: 6.1.1 경로 변수의 개요

더북(TheBook): (주)도서출판 길벗에서 제공하는 IT 도서 열람 서비스입니다.

thebook.io

 


경로 변수

- 웹 요청 URL에 포함된 파라미터 값을 전달 받는데 사용하는 변수

- @RequestMapping에 괄호({ })를 사용하여 웹 요청 URL에 포함된 요청 조건 값을 전달함

- 괄호 안에 있는 값이 명시 된 것이 경로 변수

- 하나, 두개 이상의 경로 변수를 포함 할 수 있음

 

▲ 그림 6-1  웹 요청 URL에 포함된 경로 변수와 @PathVariable의 매핑

 

코드 예제

// 경로 변수 이름을 그대로 사용할 때
@RequestMapping("경로 변수") 
public String 메서드 이름(@PathVariable 경로 변수, ...) {
    ...
}
// 경로 변수 이름을 재정의하여 사용할 때
@RequestMapping("경로 변수") 
public String 메서드 이름(@PathVariable(경로 변수) 매개변수, ...) {
    ... 
}

사용자의 웹 요청 URL에 포함된 경로 변수의 값은 요청 처리 메소드의 매개변수 데이터 타입에 맞게 자동으로 변환

 

 

 

 

 

@PathVariable 사용한 예시

▲ 그림 6-2  @PathVariable을 이용한 경로 변수 접근

1. @RequestMapping("/home")

    @GetMapping("/exam01/{bookId}")

 : 해당 경로값이 들어가 있다면 아래 처리함

 

2. {bookId} 와 @PathVariable String bookId

   : 괄호({ })의 값을 String타입의 bookId에 저장함 

 

3. model.addAttribute("data", "~~~)

  : 파라미터 값에 Model을 선언했던 model에 bookId를 저장함(addAttribute)

 

4. return "webpage06"

  : webpage06의 이름의 jsp 파일을 불러옴(입력한 데이터를 보여주기 위해)

 


Check!

@PathVariable에 설정된 매개변수는 

int, long, Date, .... : 어떤 타입이든 가능

타입 에러가 생성된다면 -> TypeMismatchException예외 발생

메소드의 매개변수가 int타입이라면 반드시 숫자로 해줘야함


else

@MatrixVariable도 있음

 

▼ 표 6-1 @MatrixVariable의 속성

속성 타입 설명
defaultValue String 기본값으로 대체하여 사용합니다.
name String 매트릭스 변수의 이름입니다.
pathVar String 하나 이상의 경로 구분(/)에 동일한 이름을 명확하게 구분하는 데 사용합니다. 매트릭스 변수가 있는 URI 경로 변수의 이름입니다.
required boolean 매트릭스 변수가 요구되는지 여부를 설정합니다.
value String 매트릭스 변수 ‘name=value’에서 name을 가리킵니다.

 

 


 

@RequestParam

메소드의 매개변수에 설정

기본값은 웹 요청 URL로 전송되는 요청 파라미터 이름과 똑같이 설정해야함

 

@RequestParam  ------>   @RequestMapping

 

코드 사용 예시

// 요청 파라미터를 그대로 사용할 때
@RequestMapping("요청 경로") 
public String 메서드 이름(@RequestParam 요청 파라미터, ...) {
    ...
}
// 요청 파라미터를 재정의하여 사용할 때
@RequestMapping("요청 경로") 
public String 메서드 이름(@RequestParam(요청 파라미터) 매개변수, ...) {
    ... 
}

 

속성값

▼ 표 6-2 @RequestParam의 속성

옵션 요소 타입 설명
defaultValue String 요청 매개변수가 없거나 빈 값이면 기본값으로 대체하여 사용합니다.
name String 전달하는 요청 매개변수의 이름입니다.
required boolean 요청 매개변수가 요구되는지 여부를 설정합니다.
value String name()에 대한 별칭입니다.

 

기본적으로 파라미터 값을 가져올 때 사용하는 것임ㅁ

!!파라미터 값은 jsp 파일에 있는 값과 동일해야함!!

 

반응형