스프링 프레임워크
@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);
}