더북(TheBook)

Note ≣ | @PathVariable에 설정된 매개변수에는 어떤 데이터 타입이 올 수 있나요?

메서드 안에 설정된 @PathVariable 매개변수의 데이터 타입은 int, long, Date 등 어떤 타입이든 가능합니다. 스프링이 적절한 타입으로 자동 변환해 주기 때문입니다. 타입 변환에 실패한다면 TypeMismatchException 예외가 발생합니다.

따라서 매개변수의 데이터 타입은 URL 내용이 적절히 변환될 수 있는 것으로 사용해야 합니다. 메서드의 매개변수에 int 타입을 사용할 때 반드시 해당 경로 변수의 값은 숫자여야 합니다. 데이터 타입이 일치하지 않는 값이 전송되었을 때 별다른 예외 처리를 하지 않으면 HTTP 400 - Bad Request 응답 코드가 전달될 것입니다.

적용 예제

@GetMapping(value="/books/{id}")
public String myMethod(@PathVariable int id) {
    // 구현 생략...
    return "book";
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.