Spring

[Spring] 스프링 MVC(12) - 컨트롤러의 파라미터와 리턴 타입

재담 2022. 3. 16. 23:45

@RequestMapping 어노테이션이 적용된 메서드에서 사용할 수 있는 파라미터 타입은 다음과 같다.

  • HttpServletRequest, HttpServletResponse : 요청 / 응답 처리를 위한 서블릿 API
  • HttpSession : HTTP 세션을 위한 서블릿 API
  • Model, ModelMap, Map : 뷰에 데이터를 전달하기 위한 모델
  • @RequestParam : HTTP 요청 파라미터 값
  • @RequestHeader, @CookieValue : 요청 헤더와 쿠키값
  • @PathVariable : 경로 변수
  • 커맨드 객체 : 요청 데이터를 저장할 객체
  • Errors, BindingResult : 검증 결과를 보관할 객체, 커맨드 객체 바로 뒤에 위치한다.
  • @RequestBody(파라미터에 적용) : 요청 몸체를 객체로 변환. 요청 몸체의 JSON이나 XML을 알맞게 객체로 변환
  • Writer, OutputStream : 응답 결과를 직접 쓸 때 사용할 출력 스트림

 

@RequestMapping 어노테이션이 적용된 메서드에서 사용할 수 있는 주요 리턴 타입은 다음과 같다.

  • String : 뷰 이름
  • void : 컨트롤러에서 응답을 직접 생성
  • ModelAndView : 모델과 뷰 정보를 함께 리턴
  • 객체 : 메서드에 @ResponseBody가 적용된 경우, 리턴 객체를 JSON이나 XML과 같은 알맞은 응답으로 변환

 

리턴 타입이 void인 경우 다음과 같이 컨트롤러에서 직접 응답을 생성하는 것을 의미한다.

@RequestMapping("/hello-raw.do")
public void hello(HttpServletResponse response) throws IOException {
    response.setContentType("text/plain");
    response.setCharacterEncoding("utf-8");
    PrintWriter writer = response.getWriter();
    writer.write("안녕하세요");
    writer.flush();
}

Reference

  • 웹 개발자를 위한 Spring 4.0 프로그래밍 (최범균 저)