인프런 커뮤니티 질문&답변

유류캠님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

HTTP 요청 메시지 - 단순 텍스트

RequestBodyStringController - requestBodyStringV3메소드 반환값 질문

작성

·

292

0


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
RequestBodyStringController - requestBodyStringV3메소드에서 반환값을 String으로 하면에러가 나는이유 + HttpEntity<>로 해야하는 이유가 궁금합니다.

// 에러가 나는 코드
@PostMapping("/request-body-string-v3")
public String requestBodyStringV3(HttpEntity<String> httpEntity) throws IOException {
    String messageBody = httpEntity.getBody();

    log.info("messageBody={}", messageBody);
    return "ok";
//        return new HttpEntity<>("ok");
}

답변 1

0

안녕하세요, 박영길 님! 공식 서포터즈 codesweaver 입니다.

컨트롤러가 반환한 값은 컨버터를 거쳐 적절한 응답값으로 바뀝니다.

스프링 프레임워크는 반환한 값의 형식에 따라 적절한 컨버터를 선택하는데요, 문자열인 경우는 사용자가 반환값이 문자열 임을 명시해야 합니다. 이 경우에는 @ResponseBody 애노테이션을 메소드 위에 붙여야 합니다. 프레임워크는 이 애노테이션을 기준으로 String 반환값을 HTTP 바디에 넣은 응답을 생성합니다.

감사합니다.