스프링 프레임워크

@RequestParam과 @PathVariable의 사용

tttck88 2019. 10. 17. 15:37

컨트롤러에서 값을 전달해 줄 때 URL에 파라미터를 같이 전달하는 경우가 있습니다.

주로 사용하는 형태는 아래의 두가지입니다.

 

1. http://127.0.0.1/read?index=1&page=2

2. http://127.0.0.1/index/1

 

첫번째의 경우 파라미터의 값과 이름을 함께 전달하는 방식으로 게시판 등에서 페이지 및 검색 정보를 함께 전달하는 방식을 사용할 때 많이 사용합니다.

두번째의 경우 Rest api에서 값을 호출할 때 주로 많이 사용합니다.

 

Spring에서는 이러한 전달인자를 처리하는데 두 가지 방식을 제공합니다.

 

@Requestparam 사용

첫번째는 @RequestParam을 사용하는데 아래의 예제와 같이 컨트롤러에서 사용합니다.

@GetMapping("read")
public ModelAndView getFactoryRead(@RequestParam("index") int id, SearchCriteria criteria) 
{
  //...    
}

위의 경우 /read?index=1과 같이 url이 전달될 때 index 파라미터를 받아오게 됩니다.

@RequsetParam 어노테이션의 괄호 안의 경우 전달인자 이름(실제 값을 표시)입니다.

 

@PathVariable

두번째는 @PathVariable을 사용하는데 래의 예제와 같이 컨트롤러에서 사용합니다.

@PostMapping("delete/{index}")
@ResponseBody
public JsonResultVo postDeleteFactory(@PathVariable("index") int factoryIdx) {
	return factoryService.deleteFacotryData(factoryIdx);
}