Spring
@RequestParam 생략 가능
keepgoing
2023. 3. 17. 15:29
@RequestParam은 어노테이션을 생략 가능하다. 대신에 변수 명이 요청 파라미터 명과 같아야 한다.
@GetMapping("/boardDelete")
public String boardDelete(Integer id){
boardService.boardDelete(id);
return "redirect:/boardList";
}
위 코드를 보면 분명히 파라미터로 넘어온 id 값을 사용해서 게시글을 제거하는 것일 텐데 @RequestParam이 제거되어있다. 만약 @RequestParam 어노테이션을 제거해도 되는 사실을 모른다면 인자로 Integer id로만 선언을 해줬는데 정상적으로 내가 원하는 게시글이 삭제될 수 있는 이유를 알지 못할 것이다.
위 코드를 조금 더 상세하게 선언해 보자면
@GetMapping("/boardDelete")
public String boardDelete(@RequestParam("id") Integer id){
boardService.boardDelete(id);
return "redirect:/boardList";
}
하지만, 실질적인 View를 생성하지 않고(백엔드 업무이기 때문에) json 방식으로 controller에서 데이터 삭제만 테스트하는 형식으로 개발한다면 컨트롤러는 아래와 같을 것이다.
@DeleteMapping("/posts/{boardId}")
public void delete(@PathVarivable Integer boardId){
boardService.delete(boardId);
}
@PathVariable이 선언되지 않으면
위와 같은 컴파일 에러가 발생한다.