Controller의 리턴 타입
스프링 MVC의 구조가 기존의 상속과 인터페이스에서
어노테이션을 사용하는 방식으로 변한 이후에 가장 큰 변화 중 하나는 리턴 타입이 자유로워 졌다는 점이다.
Controller의 메서드가 사용 할 수 있는 리턴 타입
- String : jsp를 이용하는 경우에는 jsp 파일의 경로와 파일이름을 나타내기 위해서 사용
- void : 호출하는 URL과 동일한 이름의 jsp를 의미
- VO, DTO 타입 : 주로 JSON 타입의 데이터를 만들어서 반환하는 용도로 사용
- ResponseEntity 타입 : response 할 때 Http 헤더 정보와 내용을 가공하는 용도로 사용
- Model, ModelAndView : Model로 데이터를 반환하거나 화면까지 같이 지정하는 경우에 사용 (최근에는 많이 사용하지 X)
- HttpHeaders : 응답에 내용없이 Http 헤더 메시지만 전달하는 용도로 사용
1. String 타입
- 특별한 키워드를 붙여서 사용가능
redirect : 리다이렉트 방식으로 처리하는 경우
forwoar : 포워드 방식으로 처리하는 경우
2. 객체 타입
VO(Value Object)나 DTO(Data Transfer Object)타입 등 복합적인 데이터가 들어간 객체 타입으로 지정 가능
이 경우는 주로 JSON 데이터를 만들어 내는 용도로 사용
우선 이를 위해서는 jackson-databind 라이브러리를 pom.xml에 추가
<!-- jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
3. ResponseEntitly 타입
참조 : 구멍가게 코딩단 - 스프링 웹 프로젝트 개정판