Controller의 메서드가 사용할 수 있는 리턴 타입
* String : jsp를 이용하는 경우에는 jsp 파일의 경로와 파일이름을 나타내기 위해서 사용
* void : 호출하는 URL과 동일한 이름의 jsp를 의미합니다.
* VO, DTO 타입 : 주로 JSON 타입의 데이터를 만들어서 반환하는 용도로 사용합니다.
* ResponseEntity 타입 : response 할 때 Http 헤더 정보와 내용을 가공하는 용도로 사용합니다.
* Model, ModelAndView : Model로 데이터를 반환하거나 화면까지 같이 지정하는 경우에 사용합니다.
* HttpHeaders : 응답에 내용 없이 Http 헤더 메시지만 전달하는 용도로 사용합니다.
VO, DTO 와 같은 객체 타입
* 메이븐을 사용하는 경우 pom.xml에 의존을 추가합니다.
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.4</version>
</dependency>
메서드 반환형 앞에 @ResponseBody 어노테이션을 사용합니다. 스프링 MVC가 객체를 JSON 타입으로 변환해서 전달합니다.
public class Sample {
@GetMapping("/ex01")
public @ResponseBody SampleDTO ex01() {
SampleDTO dto = new SampleDTO();
dto.setName("홍길동");
return dto;
}
}
ResponseEntity 타입
원하는 헤더 정보나 데이터를 전달할 수 있습니다. ResponseEntity는 HttpHeaders 객체를 같이 전달할 수 있고 이를 통해서 원하는 HTTP 헤더 메시지를 가공하는 것이 가능합니다.
public class Sample {
@GetMapping("/ex02")
public ResponseEntity<String> ex02() {
String msg = "{\"name\":\"홍길동\"}";
HttpHeaders header = new HttpHeaders();
header.add("Content-Type", "application/json;charset=UTF-8");
return new ResponseEntity<>(msg, header, HttpStatus.OK);
}
}
'개발 > spring' 카테고리의 다른 글
[Spring] 스프링 첨부 파일 업로드 (0) | 2022.08.30 |
---|---|
[Spring] 스프링(spring) 어노테이션(Annotation) 정리 (0) | 2022.08.16 |