@RequestParam
- 서블릿 요청 매개변수(쿼리 매개변수 또는 양식 데이터)
메서드의 매개변수(일반적으로 단일 요청 매개변수)에 바인딩할 때 사용되는 주석 - 동작 원리
@RequestParam("petId") int id→request.getParameter("username")
- 쿼리 매개변수 이름이 변수 이름과 동일한 경우
@RequestParam(name="xx")생략 가능 String,int,Integer다음과 같은 간단한 유형의 경우@RequestParam생략도 가능하다String그렇지 않으면 유형 변환이 자동으로 적용됩니다.
- 매개변수 유형은 배열 또는 목록으로 선언될 수 있습니다.
required옵션- 매개변수가 필요한지 여부를 결정합니다. (기본값 = 참)
required = false또는java.util.Optional래퍼를 사용할 때- 매개변수가 없어도 예외가 발생하지 않습니다.
- null 값은 기본 유형에 입력할 수 없으므로,
defaultValue또는 래퍼 클래스를 사용해야 합니다.
defaultValue옵션- 매개변수에 값이 없을 때
defaultValue기본값을 적용하는 데 사용할 수 있습니다. - 쿼리 매개변수가 빈 문자인 경우에도 적용됩니다.
- 기본값이 있기 때문에
required옵션은 중요하지 않습니다.
- 매개변수에 값이 없을 때
- requestParamMap
- 매개변수
Map,MultiValueMap로 볼 수 있습니다 - 애노테이션에 매개변수 이름을 지정하지 않아도 Map에서 빼낼 수 있다.
- 하나의 매개변수 값이 확실한 경우
Map그렇지 않으면MultiValueMap사용
- 매개변수
@ModelAttribute
- 서블릿 요청 매개변수(쿼리 매개변수 또는 양식 데이터)
도메인 모델 또는 DTO와 같은 복잡한 개체에 바인딩할 때 사용되는 주석입니다. - 동작 원리
- 객체 생성
- 요청 매개변수의 이름으로 객체의 속성을 찾습니다.
setter매개변수의 값을 입력하려면
- 재산
- 물체에
getA(),setA()메서드가 있으면 객체a라는 속성이 있습니다 a재산가치가 변하는 경우setA()전화를 걸거나 문의할 때getA()부르다
- 물체에
- 주석 생략 시 @ModelAttribute 적용
String,int,Integer등의 단순형이나 인수 리졸버로 지정된 형은 제외
- 바인딩 오류
- 적절한 유형을 입력하지 않으면
BindException세대 BindingResult에 오류를 저장
- 적절한 유형을 입력하지 않으면

@요청 본문
- 클라이언트에서 보낸 요청 본문 데이터
메서드의 매개변수로 바인딩하는 데 사용되는 주석 - HTTP 메시지 본문 정보의 편리한 조회
- 헤더 정보가 필요한 경우
HttpEntity또는@RequestHeader사용
- 헤더 정보가 필요한 경우
- 본문 데이터 요청 – Java 객체 변환
objectMapper다음을 통해 문자로 된 JSON 데이터messageBody자바 객체로 변환- 객체 매개변수 : 자신의 개체 지정
전)@RequestBody HelloData data - HttpEntity 사용
- 주석은 생략할 수 없습니다.
- 주석이 생략된 경우
@ModelAttribute적용하다- HTTP 메시지 본문이 아닌 요청 매개변수 처리
- 주석이 생략된 경우
- 주의
- HTTP 요청을 할 때,
content-type은application/json만 가능 - JSON을 처리할 수 있는 HTTP 메시지 변환기를 실행하기 때문입니다.
- HTTP 요청을 할 때,


