새소식

인기 검색어

JAVA

@RequestBody, @RequestParam, @ModelAttribute

  • -

@RequestBody


 Json형식으로 데이터를 보내면 Java객체로 변환 시켜준다.

  @RequestBody를 사용하면 요청 본문의 JSON, XML, Text 등의 데이터가 적합한 HttpMessageConverter를 통해 파싱되어 Java 객체로 변환 되며 @RequestBody를 사용할 객체는 필드를 바인딩할 생성자나 setter 메서드가 필요없다.

 

 

@RequestParam


 form 태그를 이용하여 데이터를 입력하고 제출 버튼을 누르면 입력한 데이터들이 url을 통해서 전달된다.

 @RequestParam 은 url 상에서 데이터를 찾기 때문에 <form> 태그를 이용하여 데이터를 입력하고 제출 버튼을 누르면 입력한 데이터들이 url을 통해서 전달된다. 예를 들면 'http://localhost:8080/receive?name=jun&age=13' 이런 식이다.

 그렇기에 Json 형식으로 데이터를 전달할때 url은 변함이 없고, body에 데이터를 포함하여 전송하기 때문에 @RequestParam 으로는 받을 수 없다.

 

 

 

 

@ModelAttribute


 @ModelAttribute를 사용하면 HTTP 파라미터 데이터를 Java 객체에 맵핑한다. 따라서 객체의 필드에 접근해 데이터를 바인딩할 수 있는 생성자 혹은 setter 메서드가 필요하다.

@ModelAttribute는 바인딩하는 값들을 주입해주는 생성자나 Setter가 없다면 매핑이 되지 않는다.

'JAVA' 카테고리의 다른 글

@ControllerAdvice  (1) 2023.05.12
예외의 종류  (0) 2023.04.10
extends, implements  (0) 2023.02.07
@Component  (0) 2023.02.07
@Resource, @Autowired, @Inject  (0) 2023.02.07
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.