spring

Controller의 리턴 타입

핑구뱅구 2023. 2. 21. 09:28

스프링 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 타입

 

 

 

 

참조 : 구멍가게 코딩단 - 스프링 웹 프로젝트 개정판