PROGRAMMING/Spring

RequestMapping 사용법(속성 정리)

피곤한비버 2019. 9. 11. 14:59

RequestMapping 은 MVC구조에서 아주 많이 사용되는 어노테이션입니다.

 

화면(View)에서 서버(Controller)로 요청을 보낼 때 Controller함수에 각 요청을 매핑시키는 역할을 합니다.

// 요청 URL패턴이 /hello 면 이 함수의 코드를 실행
@RequestMapping(value="/hello")
public String testFunction(){
	return "/jsp/hello";
}

 

이제 RequestMapping의 속성 값들에 대해 알아보겠습니다.

 

1. value

- URL의 매핑 패턴을 지정하는 속성 (필수값) 

//가장 기본적인 매핑
@RequestMapping(value="/hello") 
@RequestMapping("/hello") //value= 생략 가능

//value값을 배열로 하여 다중 매핑 가능
@RequestMapping({"/hello","/hi","/goodBye"})

// * 을 사용하여 패턴 형태로 매핑
@RequestMapping("/hello*")
@RequestMapping("/hello.*")
@RequestMapping("/hello/**/setting")

 

2. method

- HTTP 메소드를 정의합니다.

 

- GET, POST, HEAD, PUT, DELETE, OPTIONS, TRACE  7개의 메소드가 있습니다.

//같은 URL이라면 요청 메소드에 따라 구분가능
@RequestMapping(value="/member/join", method=RequestMethod.GET)
@RequestMapping(value="/member/join", method=RequestMethod.POST)
//설정하지 않은 메서드로 요청이 들어온다면 에러 발생

 

3. params

- 요청 파라미터와 그 값으로 구분지어 매핑합니다.

//같은 URL이라면 파라미터에 따라 매핑됩니다.
// /member/join?group="A"&local="Seoul" 라는 URL 요청은 첫번째 URL에 매핑됩니다.
@RequestMapping(value="/member/join", params="group=A")
@RequestMapping(value="/member/join", params="group=B")

//아래와 같이 매핑 설정이 되어있다면
//해당 파라미터가 없다면 첫번째에 매핑
//해당 파라미터와 값이 존재한다면 두번째에 매핑
@RequestMapping(value="/member/join")
@RequestMapping(value="/member/join", params="group=A")

//특정 파라미터가 존재하면 안 되는 조건도 가능합니다.
@RequestMapping(value="member/join", param="!local")

 

4. headers

- params와 같이 요청의 헤더와 그 값으로 구분지어 매핑

@RequestMapping(value="/member/delete", headers="context-type=text/html")
@RequestMapping(value="/member/delete", headers="context-type=text/*")