1. 상위문서


2. 개요

오늘은  @pathvariable 어노테이션에 대해 알아보려고 합니다.

@pathvariable 는 Spring3에서 추가된 기능 중 하나에요. 어떤 기능이냐구요? 말 그대로 URL 경로에 변수를 넣어주는거에요~ RESTful 서비스의 URI 형태가 바로 이런것?ㅎㅎ


3. 어떻게 사용합니까?

@RequestMapping의 URL 정의 부분과 Method 내의 Parameter 부분에 정의를 하여 사용이 가능합니다.

읭? 다시 한번더 설명을! :)

@RequestMapping 어노테이션 값으로 {템플릿변수} 를 사용합니다.

@PathVariable 어노테이션을 이용해서 {템플릿 변수} 와 동일한 이름을 갖는 파라미터를 추가하면 됩니다.

RequestMapping 어노테이션에 변수를 포함하고 있구요.

이들 변수는 @PathVariable 어노테이션이 적용된 동일한 이름을 갖는 파라미터에 매핑됩니다.

예시를 볼까요?

@RequestMapping(value = "/user/email/{email}", method=RequestMethod.GET)

이런 형식일때 아래와 같이 바꿔주면 제대로 들어옵니다.

@RequestMapping(value = "user/email/{email:.+}", method = RequestMethod.GET)
public ModelAndView getUserByEmail(@PathVariable("email") String email) {

리소스에 대한 조회, 등록, 수정, 삭제는 GET, POST, PUT, DELETE 메소드를 사용합니다.


4. 사용 시 주의할 점 있나요?

  • null이나 공백값이 들어가는 parameter라면 적용하지 말도록!
  • Spring 에서 @PathVariable 사용하여 값을 넘겨받을때 값에 . 가 포함되어 있으면 .포함하여 그뒤가 잘려서 들어온다는 것!

주의합시다..ㅎㅎ


5. RequestParam과 비교

5.1. RequestParam

http://192.168.0.1:8080?aaa=bbb&ccc=ddd

5.2. PathVariable

http://192.168.0.1:8080/bbb/ddd