@RequestBody
@RequestBody 어노테이션은 HTTP 요청의 본문(body)을 자바 객체로 변환합니다. 주로 JSON 또는 XML 형태로 전달된 데이터를 처리할 때 사용합니다.
예제에서는 Board 클래스를 JSON 형태로 전달받아 자바 객체로 변환합니다.
public ResponseEntity<Board> requestBody(@RequestBody Board board) {
// => @RequestBody는 MessageConverter를 통해 Json 형태의 HTTP Body를 Java 객체로 변환시킨다.
}
@ModelAttribute
@ModelAttribute 어노테이션은 요청 파라미터를 자바 객체에 바인딩합니다.
주로 HTML 폼(form) 데이터를 자바 객체로 변환할 때 사용합니다.
예제에서는 Board 객체에 HTML 폼 데이터를 바인딩합니다.
public ResponseEntity<Board> modelAttribute(@ModelAttribute Board board) {
// => @ModelAttribute는 폼(form) 형태의 HTTP Body와 요청 파라미터들을 Java 객체에 바인딩시킨다.
}
@RequestParam
@RequestParam 어노테이션은 HTTP 요청의 파라미터를 받아옵니다. 주로 URL에 포함된 쿼리스트링이나 HTML 폼(form) 데이터를 처리할 때 사용합니다.
예제에서는 searchKeyWord라는 이름의 파라미터를 받아오며, 필요에 따라 값을 기본값(MangKyu)으로 설정하거나 필수 여부를 지정할 수 있습니다.
public ResponseEntity<List<Board>> requestParam(
@RequestParam(value = "searchKeyWord1", required = false, defaultValue = "MangKyu") String searchKeyWord) {
// => searchKeyWord는 required가 false이기 때문에 없을 수도 있으므로, 없다면 기본값이 할당된다.
}
@RequestBody는 HTTP 요청 본문을 자바 객체로 변환합니다.
@RequestParam은 URL 파라미터나 HTML 폼 데이터를 받아옵니다.
@ModelAttribute는 HTML 폼 데이터를 자바 객체로 변환합니다.
이들을 잘 활용하면 클라이언트에서 서버로 전송한 데이터를 스프링 컨트롤러에서 쉽게 처리할 수 있습니다.