[Spring] @RequestParam, @RequestBody, @ModelAttribute

2025. 3. 9. 10:36·Java | Spring
728x90

@RequestParam

  • 1개의 HTTP 요청 파라미터를 받기 위해 사용
  • required 기본값 true → 반드시 해당 파라미터가 전송되어야 함
    • 반드시 필요하지 않다면 required = false 설정
  • defaultValue 옵션으로 기본값 설정 가능

@RequestBody

  • 클라이언트가 전송하는 JSON (application/json) 형태의 HTTP 바디를 자바 객체로 변환
    • `@RequestBody` 로 받는 데이터는 스프링의 MessageConverter 중 하나인 MappingJackson2HttpMessageConverter 를 통해 자바 객체로 변환됨 (ObjectMapper 클래스 사용)

@ModelAttribute

  • 클라이언트가 전송하는 폼(form) 형태의 HTTP 바디와 요청 파라미터들을 생성자나 Setter 로 바인딩하기 위해 사용
  • 매핑시키는 파라미터의 타입이 객체의 타입과 일치하는지 등 검증 (Validation) 을 추가적으로 진행
    • 만약 int 형 변수에 String 값 넣으려고 하면 BindException 발생
  • 특정 파라미터 값만 가져올 수도 있음
    • ex) `@ModelAttribute(”writer”) String writer`
728x90
저작자표시 비영리 변경금지 (새창열림)

'Java | Spring' 카테고리의 다른 글

[Spring] 예외 처리 - ExceptionResolver  (0) 2025.03.09
[Spring] @ControllerAdvice, @RestControllerAdvice  (0) 2025.03.09
[Java] 제네릭 (Generics)  (2) 2025.03.08
[Java] 다형성과 캐스팅  (0) 2025.03.08
[Java] Builder 패턴과 @Builder 어노테이션  (0) 2025.03.07
'Java | Spring' 카테고리의 다른 글
  • [Spring] 예외 처리 - ExceptionResolver
  • [Spring] @ControllerAdvice, @RestControllerAdvice
  • [Java] 제네릭 (Generics)
  • [Java] 다형성과 캐스팅
cyyy
cyyy
    250x250
  • cyyy
    Dev Log
    cyyy
  • 전체
    오늘
    어제
    • 분류 전체보기 (71)
      • Web | Network (14)
      • JavaScript (17)
      • Node.js (13)
      • Java | Spring (17)
        • GitHub Clone Project (6)
      • DB (4)
      • Linux (4)
      • AWS (2)
      • IDE (0)
  • 최근 글

  • 인기 글

  • 태그

    github clone
    JavaScript
    자바스크립트
    node.js
    spring boot
    prototype
    Database
    네트워크
    노드
    bcrypt
    Linux
    프로토타입
    프로토콜
    db
    Network
    스프링
    promise
    Spring
    Java
    비동기
  • 링크

    • Notion Log
  • hELLO· Designed By정상우.v4.10.3
cyyy
[Spring] @RequestParam, @RequestBody, @ModelAttribute
상단으로

티스토리툴바